From 207950e6522f54e3d5111db2bbae8ab9b8281b32 Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Tue, 24 Mar 2026 13:43:28 +0100 Subject: Move uploads to a named Docker volume Replace the bind-mounted src/uploads/ with a named volume shared between PHP (read-write) and Nginx (read-only). Remove entrypoint.sh since the volume handles directory creation automatically. --- .gitignore | 2 -- docker-compose.yml | 3 +++ docker/php/Dockerfile | 2 -- docker/php/entrypoint.sh | 7 ------- src/uploads/.gitkeep | 0 5 files changed, 3 insertions(+), 11 deletions(-) delete mode 100755 docker/php/entrypoint.sh delete mode 100644 src/uploads/.gitkeep diff --git a/.gitignore b/.gitignore index 12cc3bd..3457fd9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ .env -src/uploads/* -!src/uploads/.gitkeep vendor/ .php-cs-fixer.cache diff --git a/docker-compose.yml b/docker-compose.yml index a9af8ce..5d31a50 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,6 +5,7 @@ services: - "8080:80" volumes: - ./src:/var/www/html + - uploads:/var/www/html/uploads:ro depends_on: - php networks: @@ -14,6 +15,7 @@ services: build: ./docker/php volumes: - ./src:/var/www/html + - uploads:/var/www/html/uploads env_file: - .env depends_on: @@ -42,6 +44,7 @@ services: volumes: db_data: + uploads: networks: frontend: diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index cb7befd..e3d3dea 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -22,8 +22,6 @@ tls off" > /etc/msmtprc RUN echo "upload_max_filesize = 10M" > /usr/local/etc/php/conf.d/uploads.ini \ && echo "post_max_size = 10M" >> /usr/local/etc/php/conf.d/uploads.ini -COPY entrypoint.sh /usr/local/bin/entrypoint.sh -ENTRYPOINT ["entrypoint.sh"] CMD ["php-fpm"] WORKDIR /var/www/html diff --git a/docker/php/entrypoint.sh b/docker/php/entrypoint.sh deleted file mode 100755 index de41f7e..0000000 --- a/docker/php/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# Ensure the uploads directory exists and is writable by www-data (PHP-FPM). -# Bind-mounted volumes keep host ownership, so we fix permissions at startup. -mkdir -p /var/www/html/uploads/posts -chown -R www-data:www-data /var/www/html/uploads - -exec "$@" diff --git a/src/uploads/.gitkeep b/src/uploads/.gitkeep deleted file mode 100644 index e69de29..0000000 -- cgit v1.2.3