diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5564578 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,27 @@ +# Git +.git +.gitignore + +# Docker +docker + +# Symfony +var/cache/* +var/log/* +var/sessions/* +!var/cache/.gitkeep +!var/log/.gitkeep +!var/sessions/.gitkeep + +# Node +node_modules +npm-debug.log + +# Other +.env.local +.env.local.php +.env.dev.local +.env.test.local +.env.prod.local +vendor +public/build diff --git a/docker/compose.yaml b/docker/compose.yaml index 6b3450e..a904226 100644 --- a/docker/compose.yaml +++ b/docker/compose.yaml @@ -6,6 +6,9 @@ services: build: context: .. dockerfile: docker/php/Dockerfile + args: + USER_ID: ${USER_ID:-1000} + GROUP_ID: ${GROUP_ID:-1000} container_name: escapepage-php volumes: - ../:/var/www/html:delegated @@ -24,6 +27,9 @@ services: build: context: .. dockerfile: docker/php/Dockerfile + args: + USER_ID: ${USER_ID:-1000} + GROUP_ID: ${GROUP_ID:-1000} container_name: escapepage-php-worker volumes: - ../:/var/www/html:delegated diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 1f11d6c..fb43443 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -11,7 +11,8 @@ RUN apk add --no-cache \ g++ \ make \ nodejs \ - npm + npm \ + shadow # Install PHP extension installer COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ @@ -40,6 +41,18 @@ COPY --from=composer:2 /usr/bin/composer /usr/bin/composer # Configure PHP COPY docker/php/php.ini $PHP_INI_DIR/conf.d/zz-custom.ini +# Adjust www-data UID/GID to match host user (default 1000) +ARG USER_ID=1000 +ARG GROUP_ID=1000 + +RUN if [ ${USER_ID:-0} -ne 0 ] && [ ${GROUP_ID:-0} -ne 0 ]; then \ + userdel -f www-data &&\ + if getent group www-data ; then groupdel www-data; fi &&\ + groupadd -g ${GROUP_ID} www-data &&\ + useradd -l -u ${USER_ID} -g www-data www-data &&\ + install -d -m 0755 -o www-data -g www-data /home/www-data \ +;fi + WORKDIR /var/www/html # Set permissions for Symfony directories