From 1f673aab71b00696ecaedf2e36b72da85adc9519 Mon Sep 17 00:00:00 2001 From: netkas Date: Tue, 14 Jan 2025 14:52:59 -0500 Subject: [PATCH] Refactor file structure for better Docker organization --- Dockerfile | 22 ++++++++++++++++----- docker-compose.test.yml | 4 ++-- docker-compose.yml | 2 +- docker/docker.conf | 2 ++ entrypoint.sh => docker/entrypoint.sh | 0 nginx.conf => docker/nginx.conf | 0 redis.conf => docker/redis.conf | 0 supervisord.conf => docker/supervisord.conf | 0 docker/zz-docker.conf | 10 ++++++++++ 9 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 docker/docker.conf rename entrypoint.sh => docker/entrypoint.sh (100%) rename nginx.conf => docker/nginx.conf (100%) rename redis.conf => docker/redis.conf (100%) rename supervisord.conf => docker/supervisord.conf (100%) create mode 100644 docker/zz-docker.conf diff --git a/Dockerfile b/Dockerfile index 22628b7..774fb36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -83,11 +83,12 @@ RUN ncc build --config release --build-source --log-level debug && \ RUN rm -rf /tmp/build && rm -rf /var/www/html/* # Copy over the required files -COPY nginx.conf /etc/nginx/nginx.conf +COPY docker/nginx.conf /etc/nginx/nginx.conf COPY public/index.php /var/www/html/index.php RUN chown -R www-data:www-data /var/www/html && chmod -R 755 /var/www/html -# ----------------------------- Cron Configuration --------------------------- +# ----------------------------- Environment Configuration --------------------------- +# Configure Cron RUN echo "*/1 * * * * root for i in {1..12}; do /usr/bin/socialbox process-outgoing; sleep 5; done" > /etc/cron.d/socialbox-process-outgoing && \ echo "*/1 * * * * root /usr/bin/socialbox session-cleanup" > /etc/cron.d/socialbox-session-cleanup && \ echo "*/5 * * * * root /usr/bin/socialbox peer-cleanup" > /etc/cron.d/socialbox-peer-cleanup && \ @@ -100,9 +101,20 @@ RUN echo "*/1 * * * * root for i in {1..12}; do /usr/bin/socialbox process-outgo crontab /etc/cron.d/socialbox-session-cleanup && \ crontab /etc/cron.d/socialbox-peer-cleanup -# ----------------------------- Supervisor Configuration --------------------- # Copy Supervisor configuration -COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf +COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf +# Copy docker.conf & zz-docker.conf for PHP-FPM +COPY docker/docker.conf /usr/local/etc/php-fpm.d/docker.conf +COPY docker/zz-docker.conf /usr/local/etc/php-fpm.d/zz-docker.conf + +# Configure php.ini and enable error and log it to /var/log rather than stdout +RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini && \ + sed -i 's/^;error_log = php_errors.log/error_log = \/var\/log\/php_errors.log/' /usr/local/etc/php/php.ini && \ + sed -i 's/^;log_errors = On/log_errors = On/' /usr/local/etc/php/php.ini && \ + sed -i 's/^;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT/error_reporting = E_ALL/' /usr/local/etc/php/php.ini && \ + sed -i 's/^;display_errors = Off/display_errors = On/' /usr/local/etc/php/php.ini && \ + sed -i 's/^;date.timezone =/date.timezone = UTC/' /usr/local/etc/php/php.ini + # ----------------------------- Cleanup --------------------- WORKDIR / @@ -112,7 +124,7 @@ EXPOSE 8085 # ----------------------------- Container Startup ---------------------------- # Copy over entrypoint script and set it as executable -COPY entrypoint.sh /usr/local/bin/entrypoint.sh +COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh # Set the entrypoint diff --git a/docker-compose.test.yml b/docker-compose.test.yml index b8d5fa2..47c225b 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -95,7 +95,7 @@ services: command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes volumes: - coffee_redis_data:/data - - ./redis.conf:/usr/local/etc/redis/redis.conf + - ./docker/redis.conf:/usr/local/etc/redis/redis.conf networks: - coffee_network expose: @@ -198,7 +198,7 @@ services: command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes volumes: - teapot_redis_data:/data - - ./redis.conf:/usr/local/etc/redis/redis.conf + - ./docker/redis.conf:/usr/local/etc/redis/redis.conf networks: - teapot_network expose: diff --git a/docker-compose.yml b/docker-compose.yml index d4d0f75..e409af1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -85,7 +85,7 @@ services: command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes volumes: - redis_data:/data - - ./redis.conf:/usr/local/etc/redis/redis.conf + - ./docker/redis.conf:/usr/local/etc/redis/redis.conf networks: - internal_network expose: diff --git a/docker/docker.conf b/docker/docker.conf new file mode 100644 index 0000000..40d2614 --- /dev/null +++ b/docker/docker.conf @@ -0,0 +1,2 @@ +[www] +clear_env = no \ No newline at end of file diff --git a/entrypoint.sh b/docker/entrypoint.sh similarity index 100% rename from entrypoint.sh rename to docker/entrypoint.sh diff --git a/nginx.conf b/docker/nginx.conf similarity index 100% rename from nginx.conf rename to docker/nginx.conf diff --git a/redis.conf b/docker/redis.conf similarity index 100% rename from redis.conf rename to docker/redis.conf diff --git a/supervisord.conf b/docker/supervisord.conf similarity index 100% rename from supervisord.conf rename to docker/supervisord.conf diff --git a/docker/zz-docker.conf b/docker/zz-docker.conf new file mode 100644 index 0000000..c8e8e2b --- /dev/null +++ b/docker/zz-docker.conf @@ -0,0 +1,10 @@ +[global] +daemonize=no +error_log = /var/log/php_fpm_error.log +log_limit = 1048576 +log_level = notice + +[www] +listen = 9000 +catch_workers_output = yes +decorate_workers_output = no \ No newline at end of file