Archived
1
0
Fork 0
This repository has been archived on 2023-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
ts3web/Dockerfile
Varakh 5805279633
Some checks reported errors
continuous-integration/drone/push Build was killed
Release 2.26 which incorporates the following changes (#1)
- 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

Co-authored-by: Varakh <varakh@varakh.de>
Reviewed-on: #1
2023-04-06 20:55:21 +00:00

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/