diff --git a/bash/caddy/Caddyfile b/bash/caddy/Caddyfile index b01685f..f77794f 100644 --- a/bash/caddy/Caddyfile +++ b/bash/caddy/Caddyfile @@ -2,5 +2,5 @@ dev.caldwell.digital:443 tls /etc/ssl/wildcard.crt /etc/ssl/wildcard.pem -reverse_proxy web:80 +reverse_proxy app:80 diff --git a/bash/entrypoint.sh b/bash/entrypoint.sh index d33202d..c8478ba 100644 --- a/bash/entrypoint.sh +++ b/bash/entrypoint.sh @@ -10,9 +10,4 @@ sleep $SLEEP_TIME php /var/www/bin/console doctrine:migrations:migrate --no-interaction php /var/www/bin/console db:seed -# Start Apache in the foreground -echo "Starting PHP-FPM..." -php-fpm - -exec "$@" - +/usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf diff --git a/bash/nginx.conf b/bash/nginx.conf index 809c71f..3a43bd3 100755 --- a/bash/nginx.conf +++ b/bash/nginx.conf @@ -20,11 +20,13 @@ server { } location ~ \.php$ { - fastcgi_pass app:9000; + fastcgi_pass unix:/run/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT $realpath_root; internal; } } \ No newline at end of file diff --git a/compose.yml b/compose.yml index 22066ea..88a85de 100755 --- a/compose.yml +++ b/compose.yml @@ -12,14 +12,6 @@ services: - $PWD/bash/caddy:/etc/caddy - $PWD/bash/certs:/etc/ssl - web: - build: - dockerfile: docker/Dockerfile.web - context: . - depends_on: - app: - condition: service_healthy - redis: image: redis:latest volumes: @@ -31,8 +23,11 @@ services: build: dockerfile: docker/Dockerfile.app context: . + ports: + - "8001:80" volumes: - ./:/var/www + - ./bash/nginx.conf:/etc/nginx/conf.d/site.conf depends_on: database: condition: service_healthy diff --git a/docker/Dockerfile.app b/docker/Dockerfile.app index d6fa128..66f41d0 100644 --- a/docker/Dockerfile.app +++ b/docker/Dockerfile.app @@ -1,16 +1,14 @@ -FROM php:8.4-fpm-alpine3.21 +FROM trafex/php-nginx:3.9.0 -RUN docker-php-ext-install pdo_mysql +USER root -# SETUP PHP-FPM CONFIG SETTINGS (max_children / max_requests) -RUN echo 'pm = dynamic' >> /usr/local/etc/php-fpm.d/zz-docker.conf && \ - echo 'pm.max_children = 75' >> /usr/local/etc/php-fpm.d/zz-docker.conf && \ - echo 'pm.start_servers = 30' >> /usr/local/etc/php-fpm.d/zz-docker.conf && \ - echo 'pm.min_spare_servers = 5' >> /usr/local/etc/php-fpm.d/zz-docker.conf && \ - echo 'pm.max_spare_servers = 30' >> /usr/local/etc/php-fpm.d/zz-docker.conf && \ - echo 'pm.process_idle_timeout = 10s' >> /usr/local/etc/php-fpm.d/zz-docker.conf +RUN apk add --no-cache \ + php84-pdo_mysql \ + php84-simplexml -COPY --chown=www-data:www-data . /var/www +USER nobody + +COPY --chown=nobody:nobody . /var/www COPY --chmod=0775 ./bash/entrypoint.sh /usr/local/bin/ HEALTHCHECK --interval=5s --timeout=5s --retries=5 CMD [ "php", "/var/www/bin/console", "startup:status" ] diff --git a/docs/examples/compose.yml b/docs/examples/compose.yml index da21861..a1857c1 100644 --- a/docs/examples/compose.yml +++ b/docs/examples/compose.yml @@ -3,18 +3,12 @@ services: # proxies traffic back to their respective services. If not # running behind a reverse proxy inject your SSL certificates # into this container. - web: - image: code.caldwell.digital/home/torsearch-web:latest - ports: - - '8006:80' - depends_on: - app: - condition: service_healthy - # This container runs the actual web app in a php:8.4-fpm # base container. app: image: code.caldwell.digital/home/torsearch-app:latest + ports: + - '8006:80' env_file: - .env depends_on: