| FROM php:8.1-apache | |
| RUN apt-get update && apt-get install -y \ | |
| libfreetype6-dev \ | |
| libjpeg62-turbo-dev \ | |
| libpng-dev \ | |
| libzip-dev \ | |
| unzip \ | |
| git \ | |
| libmagickwand-dev \ | |
| wget \ | |
| python3 \ | |
| python3-venv \ | |
| python3-pip \ | |
| build-essential \ | |
| libssl-dev \ | |
| libffi-dev \ | |
| python3-dev \ | |
| cargo \ | |
| pkg-config \ | |
| && docker-php-ext-configure gd --with-freetype --with-jpeg \ | |
| && docker-php-ext-install -j$(nproc) gd pdo pdo_mysql zip exif fileinfo bcmath \ | |
| && pecl install imagick \ | |
| && docker-php-ext-enable imagick \ | |
| && a2enmod rewrite mime \ | |
| && apt-get clean \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /var/www/html | |
| RUN curl -L https://github.com/zjmkkk/lsky-pro/releases/download/lsky-pro/lsky-pro.zip -o lsky-pro.zip \ | |
| && unzip lsky-pro.zip \ | |
| && rm lsky-pro.zip \ | |
| && touch /var/www/html/.env \ | |
| && mkdir -p /var/www/html/database \ | |
| && touch /var/www/html/database/database.sqlite \ | |
| && mkdir -p /var/www/html/storage/app/public/images \ | |
| && mkdir -p /var/www/html/public/storage \ | |
| && chmod 777 /var/www/html/.env \ | |
| && chmod -R 777 /var/www/html/database \ | |
| && chmod -R 777 /var/www/html/storage \ | |
| && chmod -R 777 /var/www/html/bootstrap/cache \ | |
| && chmod -R 777 /var/www/html/public \ | |
| && ln -sf /var/www/html/storage/app/public /var/www/html/public/storage \ | |
| && chown -R www-data:www-data /var/www/html | |
| RUN echo 'ServerName 127.0.0.1' >> /etc/apache2/apache2.conf \ | |
| && echo '<VirtualHost *:7860>\n\ | |
| DocumentRoot /var/www/html/public\n\ | |
| ErrorLog ${APACHE_LOG_DIR}/error.log\n\ | |
| CustomLog ${APACHE_LOG_DIR}/access.log combined\n\ | |
| <Directory /var/www/html/public>\n\ | |
| Options Indexes FollowSymLinks\n\ | |
| AllowOverride All\n\ | |
| Require all granted\n\ | |
| </Directory>\n\ | |
| <Directory /var/www/html>\n\ | |
| Options Indexes FollowSymLinks\n\ | |
| AllowOverride All\n\ | |
| Require all granted\n\ | |
| </Directory>\n\ | |
| </VirtualHost>' > /etc/apache2/sites-available/000-default.conf \ | |
| && echo '<IfModule mod_mime.c>\n\ | |
| AddType image/jpeg .jpg .jpeg\n\ | |
| AddType image/png .png\n\ | |
| AddType image/gif .gif\n\ | |
| </IfModule>' >> /etc/apache2/apache2.conf \ | |
| && sed -i 's/80/7860/g' /etc/apache2/ports.conf | |
| RUN { \ | |
| echo 'open_basedir = /var/www/html:/tmp:/usr/local/lib/php'; \ | |
| echo 'session.save_path = "/var/lib/php/sessions"'; \ | |
| echo 'session.gc_maxlifetime = 14400'; \ | |
| echo 'session.cookie_lifetime = 14400'; \ | |
| echo 'display_errors = On'; \ | |
| echo 'log_errors = On'; \ | |
| echo 'error_log = /var/log/php_errors.log'; \ | |
| echo 'memory_limit = 256M'; \ | |
| echo 'max_execution_time = 300'; \ | |
| echo 'upload_max_filesize = 100M'; \ | |
| echo 'post_max_size = 100M'; \ | |
| } > /usr/local/etc/php/conf.d/custom.ini \ | |
| && mkdir -p /var/lib/php/sessions \ | |
| && chmod 777 /var/lib/php/sessions \ | |
| && chown -R www-data:www-data /var/lib/php/sessions | |
| ENV VIRTUAL_ENV=/opt/venv | |
| RUN python3 -m venv $VIRTUAL_ENV \ | |
| && $VIRTUAL_ENV/bin/pip install --upgrade pip \ | |
| && $VIRTUAL_ENV/bin/pip install huggingface_hub cryptography | |
| ENV PATH="$VIRTUAL_ENV/bin:$PATH" | |
| ENV APACHE_DOCUMENT_ROOT /var/www/html/public | |
| ENV APACHE_LOG_DIR /var/log/apache2 | |
| COPY sync_data.sh / | |
| RUN chmod +x /sync_data.sh | |
| EXPOSE 7860 | |
| CMD ["/sync_data.sh"] |