FROM alpine:3.15 LABEL maintainer="Varakh" ENV APP_HOME=/var/www/html/application \ PHP_MEMORY_LIMIT=512M \ MAX_UPLOAD=1024M \ PHP_MAX_FILE_UPLOAD=200 \ PHP_MAX_POST=1024M # setup folder structure RUN mkdir -p ${APP_HOME}/data/snapshots && \ mkdir -p ${APP_HOME}/log && \ touch ${APP_HOME}/log/application.log && \ mkdir -p ${APP_HOME}/config # entrypoint ADD docker/configure.php /configure.php # add upstream application ADD src ${APP_HOME}/src ADD public ${APP_HOME}/public ADD composer.json ${APP_HOME}/composer.json ADD composer.lock ${APP_HOME}/composer.lock ADD data ${APP_HOME}/data ADD config ${APP_HOME}/config # install dependencies RUN cp ${APP_HOME}/config/env.example ${APP_HOME}/config/env && \ apk add --update --no-cache \ bash \ nginx \ s6 \ curl \ git \ php7 \ php7-fpm \ php7-cli \ php7-intl \ php7-curl \ php7-json \ php7-dom \ php7-simplexml \ php7-pcntl \ php7-posix \ php7-mcrypt \ php7-session \ php7-gd \ php7-phar \ php7-fileinfo \ php7-mbstring \ php7-ctype \ php7-ldap \ php7-openssl \ php7-pecl-memcached \ memcached \ ca-certificates && \ rm -rf /var/cache/apk/* && \ apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted && \ # set environments/php sed -i "s|;*memory_limit =.*|memory_limit = ${PHP_MEMORY_LIMIT}|i" /etc/php7/php.ini && \ sed -i "s|;*upload_max_filesize =.*|upload_max_filesize = ${MAX_UPLOAD}|i" /etc/php7/php.ini && \ sed -i "s|;*max_file_uploads =.*|max_file_uploads = ${PHP_MAX_FILE_UPLOAD}|i" /etc/php7/php.ini && \ sed -i "s|;*post_max_size =.*|post_max_size = ${PHP_MAX_POST}|i" /etc/php7/php.ini && \ # prepare php curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \ # prepare application cd ${APP_HOME} && composer install && \ # clean up and permissions rm -rf /var/cache/apk/* && \ chown nobody:nginx -R ${APP_HOME} # Add nginx config ADD docker/nginx.conf /etc/nginx/nginx.conf # Add required environment variables to php-fpm RUN echo "env[ENV_DIR]=%%%ENV_DIR%%%" >> /etc/php7/php-fpm.d/www.conf EXPOSE 80 # add overlay ADD docker/s6 /etc/s6/ # expose start CMD /usr/bin/php /configure.php && exec s6-svscan /etc/s6/