Varakh
f6db46234a
- Add a ENV_DIR for docker containers to allow changing the env file location changes where the rest of the configuration is bootstrapped from - Add log_dir and snapshot_dir in env file configuration to determine the log and snapshot directories - Massively cleaned up README and provide better examples
85 lines
2.5 KiB
Docker
85 lines
2.5 KiB
Docker
FROM alpine:3.15
|
|
|
|
LABEL maintainer="Varakh<varakh@varakh.de>"
|
|
|
|
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/
|