From ab0e0f0387d4c93e7003618942659a4e8fa271da Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Sat, 6 May 2023 14:45:35 +0200 Subject: [PATCH] wip #5851 @3 --- .../overrides.conf => config/php/fpm.conf} | 0 .docker/config/{ => php}/php.ini | 0 .docker/docker-compose.yml | 82 ++++++++++--------- .docker/images/php-dev/Dockerfile | 4 +- .docker/images/php/Dockerfile | 1 - .docker/images/php/overrides.conf | 37 --------- .docker/images/php/startup | 39 --------- .docker/update | 5 +- {.docker/images/php-dev => bin}/startup | 0 9 files changed, 50 insertions(+), 118 deletions(-) rename .docker/{images/php-dev/overrides.conf => config/php/fpm.conf} (100%) rename .docker/config/{ => php}/php.ini (100%) delete mode 100644 .docker/images/php/overrides.conf delete mode 100644 .docker/images/php/startup rename {.docker/images/php-dev => bin}/startup (100%) diff --git a/.docker/images/php-dev/overrides.conf b/.docker/config/php/fpm.conf similarity index 100% rename from .docker/images/php-dev/overrides.conf rename to .docker/config/php/fpm.conf diff --git a/.docker/config/php.ini b/.docker/config/php/php.ini similarity index 100% rename from .docker/config/php.ini rename to .docker/config/php/php.ini diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index 0f7f3f45c..fdaca9db6 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -1,15 +1,18 @@ version: '3.1' services: - webserver: - container_name: fluidbook-toolbox-httpd - build: /home/toolbox/www/.docker/images/httpd + php-fpm: + container_name: fluidbook-toolbox + build: /home/toolbox/www/.docker/images/php working_dir: /application + hostname: fluidbook-toolbox + environment: + TZ: Europe/Paris + HOME: /application + NODE_PATH: /usr/lib/node_modules volumes: - # Config - - '/home/toolbox/www/.docker/config/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf' # Files - - '/home/extranet/share:/application/share' - - '/home/toolbox/www:/application' + - '/home/toolbox/www/:/application/' + - '/home/extranet/share/:/application/share/' - '/data/toolbox/storage/app/public/:/application/public/storage/' - '/data/toolbox/storage/:/application/storage/' - '/data/extranet/ftp/:/application/ftp/' @@ -18,28 +21,11 @@ services: - '/data/extranet/www/fluidbook/books/links/:/application/protected/fluidbookpublication/links/' - '/home/extranet/www/fluidbook/cache/unzip/:/application/storage/fluidbook/cache/unzip/' - '/data/toolbox/protected/fluidbookpublication/cache/:/application/protected/fluidbookpublication/cache/' - - '/home/extranet:/home/extranet' - - '/data/extranet:/data/extranet' - - '/mnt:/mnt' - ports: - - '37126:80' - environment: - VIRTUAL_HOST: toolbox.fluidbook.com - LETSENCRYPT_HOST: toolbox.fluidbook.com - networks: - - fluidbook-toolbox - restart: unless-stopped - - php-fpm: - container_name: fluidbook-toolbox - build: /home/toolbox/www/.docker/images/php - working_dir: /application - hostname: fluidbook-toolbox - environment: - TZ: Europe/Paris - HOME: /application - NODE_PATH: /usr/lib/node_modules - volumes: + - '/home/extranet/:/home/extranet/' + - '/data/extranet/:/data/extranet/' + - '/mnt/:/mnt/' + # Startup + - '/home/toolbox/www/bin/startup:/usr/bin/startup' # SSH - '/home/toolbox/www/.docker/config/ssh/root/:/root/.ssh/' - '/home/toolbox/www/.docker/config/ssh/user/:/application/.ssh/' @@ -73,12 +59,30 @@ services: # Rclone - '/home/toolbox/www/.docker/config/rclone.conf:/application/.config/rclone/rclone.conf' # PHP - - '/home/toolbox/www/.docker/config/php.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini' + - '/home/toolbox/www/.docker/config/php/php.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini' + - '/home/toolbox/www/.docker/config/php/fpm.conf:/etc/php/8.2/fpm/pool.d/z-overrides.conf' # ENV - '/home/toolbox/www/.env.prod:/application/.env' + ports: + - '58744:8123' + - '58745:22' + networks: + - fluidbook-toolbox + - fluidbook-processfarm + restart: unless-stopped + + + webserver: + container_name: fluidbook-toolbox-httpd + build: /home/toolbox/www/.docker/images/httpd + working_dir: /application + volumes: # Files - - '/home/extranet/share:/application/share' - - '/home/toolbox/www:/application' + - '/home/toolbox/www/:/application/' + - '/home/extranet/:/home/extranet/' + - '/data/extranet/:/data/extranet/' + - '/mnt/:/mnt/' + - '/home/extranet/share/:/application/share/' - '/data/toolbox/storage/app/public/:/application/public/storage/' - '/data/toolbox/storage/:/application/storage/' - '/data/extranet/ftp/:/application/ftp/' @@ -87,16 +91,18 @@ services: - '/data/extranet/www/fluidbook/books/links/:/application/protected/fluidbookpublication/links/' - '/home/extranet/www/fluidbook/cache/unzip/:/application/storage/fluidbook/cache/unzip/' - '/data/toolbox/protected/fluidbookpublication/cache/:/application/protected/fluidbookpublication/cache/' - - '/home/extranet:/home/extranet' - - '/data/extranet:/data/extranet' - - '/mnt:/mnt' + # Config + - '/home/toolbox/www/.docker/config/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf' ports: - - '58744:8123' - - '58745:22' + - '37126:80' + environment: + VIRTUAL_HOST: toolbox.fluidbook.com + LETSENCRYPT_HOST: toolbox.fluidbook.com networks: - fluidbook-toolbox - - fluidbook-processfarm restart: unless-stopped + + adminer: image: adminer:latest container_name: fluidbook-toolbox-adminer diff --git a/.docker/images/php-dev/Dockerfile b/.docker/images/php-dev/Dockerfile index c06fa2ff1..2348d6a96 100644 --- a/.docker/images/php-dev/Dockerfile +++ b/.docker/images/php-dev/Dockerfile @@ -5,6 +5,8 @@ WORKDIR "/application" # Fixes some weird terminal issues such as broken clear / CTRL+L ENV TERM=linux +WORKDIR "/application" + # Ensure apt doesn't ask questions when installing stuff ENV DEBIAN_FRONTEND=noninteractive @@ -93,7 +95,7 @@ RUN groupadd sudo;useradd -d /application -g 33 -G sudo -s /bin/bash -u 1001 too # PHP-FPM packages need a nudge to make them docker-friendly COPY overrides.conf /etc/php/8.2/fpm/pool.d/z-overrides.conf -COPY startup /usr/bin/startup +COPY --chmod=0755 startup /usr/bin/startup CMD exec /usr/bin/startup # Open up fcgi port diff --git a/.docker/images/php/Dockerfile b/.docker/images/php/Dockerfile index c06fa2ff1..79cf57396 100644 --- a/.docker/images/php/Dockerfile +++ b/.docker/images/php/Dockerfile @@ -93,7 +93,6 @@ RUN groupadd sudo;useradd -d /application -g 33 -G sudo -s /bin/bash -u 1001 too # PHP-FPM packages need a nudge to make them docker-friendly COPY overrides.conf /etc/php/8.2/fpm/pool.d/z-overrides.conf -COPY startup /usr/bin/startup CMD exec /usr/bin/startup # Open up fcgi port diff --git a/.docker/images/php/overrides.conf b/.docker/images/php/overrides.conf deleted file mode 100644 index 4a99e3e4e..000000000 --- a/.docker/images/php/overrides.conf +++ /dev/null @@ -1,37 +0,0 @@ -[global] -; Override default pid file -pid = /run/php-fpm.pid - -; Avoid logs being sent to syslog -error_log = /proc/self/fd/2 - -; Set this to php default's max_execution_time to allow children to stop gracefully when fpm is commanded to stop -; This helps avoiding 502's -process_control_timeout = 30 - -; Do not daemonize (eg send process to the background) -daemonize = no - -[www] -; Access from webserver container is via network, not socket file -listen = [::]:9000 - -; Redirect logs to stdout - FPM closes /dev/std* on startup -access.log = /proc/self/fd/1 -catch_workers_output = yes - -; Remove "pool www" decoration from log output (older phpdocker.io containers for php use sed for this) -decorate_workers_output = no - -; Required to allow config-by-environment -clear_env = no - -user = 1001 -group = 33 - -pm = dynamic -pm.max_children = 160 -pm.start_servers = 48 -pm.min_spare_servers = 40 -pm.max_spare_servers = 80 -pm.max_requests = 1000 diff --git a/.docker/images/php/startup b/.docker/images/php/startup deleted file mode 100644 index 3dc58488c..000000000 --- a/.docker/images/php/startup +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -# Set file rights -umask 0000 -chmod -R 777 /tmp - -chown -R root:root /etc/sudoers.d -chown -R toolbox:www-data /application/storage/framework -chmod 755 /etc/ssh/*.d -chmod 600 /etc/ssh/*_key -chmod 750 /application -chmod 600 /application/.ssh/id_rsa -chmod 700 /application/.ssh/ -chmod 600 /application/.ssh/authorized_keys2 -chmod 600 /root/.ssh/id_rsa -chmod 700 /root/.ssh/ -chmod 600 /root/.ssh/authorized_keys2 - -# Rsyslog -start-stop-daemon --start -b -x /usr/sbin/rsyslogd -- -n - -# SSH Server -/usr/sbin/service ssh start - -# Supervisor -/usr/sbin/service supervisor start - -# Cron -chmod 0644 /etc/crontab && crontab -u root /etc/crontab && /usr/sbin/service cron start - -# Set user password -chpasswd < /root/passwords - -# Launch monit -chmod -R 700 /etc/monit;chown -R root:root /etc/monit;/usr/bin/monit -chown -R root:root /etc/monit && /usr/bin/monit - -# Launch PHP -/usr/sbin/php-fpm8.2 -O diff --git a/.docker/update b/.docker/update index 4e68f34f5..8edf7021f 100644 --- a/.docker/update +++ b/.docker/update @@ -1,8 +1,9 @@ #!/bin/sh cd /docker/fluidbook-toolbox +/home/toolbox/www/scripts/fixrights chown root:root /home/toolbox/www/.docker/config/cron/host;ln -sf /home/toolbox/www/.docker/config/cron/host /etc/cron.d/toolbox docker network create fluidbook-toolbox docker compose down -docker compose up -d -docker exec -it fluidbook-toolbox /application/scripts/update +docker -D -l debug compose up -d /home/toolbox/www/scripts/fixrights +docker exec -it fluidbook-toolbox /application/scripts/update diff --git a/.docker/images/php-dev/startup b/bin/startup similarity index 100% rename from .docker/images/php-dev/startup rename to bin/startup -- 2.39.5