imgur / Dockerfile
sugar404's picture
Create Dockerfile
c3da5db verified
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"]