diff --git a/Dockerfile b/Dockerfile index 46f4170e798167641e55bebc2e93c52b95dcd822..8e3937435a36d6ff7ad46149d846a3c738a979db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,17 @@ RUN apk add --update \ dcron \ php7 \ php7-fpm \ + php7-json \ + php7-session \ + php7-openssl \ + php7-bcmath \ + php7-ctype \ + php7-mbstring \ + php7-pdo \ + php7-tokenizer \ + php7-xml \ + php7-curl \ + php7-dom \ && rm -rf /var/cache/apk/* WORKDIR /html @@ -51,7 +62,5 @@ COPY --chown=root:nginx . /html WORKDIR /html EXPOSE 80 -CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ - chmod -R g+w storage/logs/metager bootstrap/cache && \ - crond -L /dev/stdout && \ +CMD crond -L /dev/stdout && \ php-fpm7 diff --git a/DockerfileDev b/DockerfileDev new file mode 100644 index 0000000000000000000000000000000000000000..380f662d134681a6a31089e4247de75726360934 --- /dev/null +++ b/DockerfileDev @@ -0,0 +1,52 @@ +FROM alpine:3.11.3 + +RUN apk add --update \ + nginx \ + tzdata \ + ca-certificates \ + dcron \ + php7 \ + php7-fpm \ + php7-json \ + php7-session \ + php7-openssl \ + php7-bcmath \ + php7-ctype \ + php7-mbstring \ + php7-pdo \ + php7-tokenizer \ + php7-xml \ + php7-curl \ + php7-dom \ + && rm -rf /var/cache/apk/* + +WORKDIR /html + +RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stderr/g' /etc/php7/php-fpm.conf && \ + sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php7/php-fpm.conf && \ + sed -i 's/listen = 127.0.0.1:9000/listen = 9000/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;request_terminate_timeout = 0/request_terminate_timeout = 30/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;request_terminate_timeout_track_finished = no/request_terminate_timeout_track_finished = yes/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;decorate_workers_output = no/decorate_workers_output = no/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = nobody/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 25/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/user = www-data/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \ + sed -i 's/expose_php = On/expose_php = Off/g' /etc/php7/php.ini && \ + ln -s /dev/null /var/log/nginx/access.log && \ + ln -s /dev/stdout /var/log/nginx/error.log && \ + cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \ + echo "Europe/Berlin" > /etc/timezone && \ + (crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab - + +WORKDIR /html +EXPOSE 80 + +CMD crond -L /dev/stdout && \ + php-fpm7 diff --git a/docker-compose.yml b/docker-compose.yml index eec8d4c7ef365c10f6f42b342428e553801d29be..18ed16ba0b7a8f7ea4d7c61e9187eae980d3463f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,15 +11,29 @@ services: - .:/usr/src/app working_dir: /usr/src/app command: bash -c "npm install && npm run watch" - web: + phpfpm: depends_on: - "phpdeps" - "assets" - "redis" - build: . + restart: on-failure + build: + context: . + dockerfile: DockerfileDev + image: metager:latest + working_dir: /html + volumes: + - .:/html + web: + depends_on: + - "phpfpm" + image: metager:latest working_dir: /html + command: nginx volumes: - .:/html + - ./config/nginx.conf:/etc/nginx/nginx.conf + - ./config/nginx-default.conf:/etc/nginx/conf.d/default.conf ports: - "8080:80" redis: