From aeffec2afb931731dc8171b66a6ab4e505743b09 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler <dominik@suma-ev.de> Date: Thu, 30 Nov 2023 11:16:22 +0100 Subject: [PATCH] add dockerignore and fix user_id --- .dockerignore | 15 +++++++++++++++ .env | 11 +++++++---- build/fpm/Dockerfile | 8 ++++---- build/nginx/Dockerfile | 12 +++++++++--- build/node/Dockerfile | 6 +++--- docker-compose.yml | 27 ++++++++++++++++++--------- 6 files changed, 56 insertions(+), 23 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..336bb9b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +app/.env.example +app/.gitattributes +app/.gitignore +app/.gitlab-ci.yml +app/.settings +app/LICENSE +app/composer.* +app/node_modules +app/package* +app/phpunit* +app/readme.md +app/resources/assets +app/tests +app/webpack.mix.js +app/yarn.lock \ No newline at end of file diff --git a/.env b/.env index 70c58da..4afc9d1 100644 --- a/.env +++ b/.env @@ -1,5 +1,8 @@ -ENVIRONMENT=development # Environment to deploy to. Can be: development|production -USER=1000 # User ID used in the Docker containers -GROUP=1000 # Group ID used in the Docker containers +ENVIRONMENT=production # Environment to deploy to. Can be: development|production +NODE_TAG=10 -IMAGE_TAG=latest \ No newline at end of file +IMAGE_NAME=metagermaps +IMAGE_TAG=dev + +USER_ID=1000 # User ID used in the Docker containers +GROUP_ID=1000 # Group ID used in the Docker containers \ No newline at end of file diff --git a/build/fpm/Dockerfile b/build/fpm/Dockerfile index 14cbd90..07d7ef8 100644 --- a/build/fpm/Dockerfile +++ b/build/fpm/Dockerfile @@ -1,7 +1,7 @@ FROM alpine:3.13 as base -ARG USER=1000 -ARG GROUP=1000 +ARG USER_ID=1000 +ARG GROUP_ID=1000 RUN apk add --update \ tzdata \ @@ -32,7 +32,7 @@ RUN apk add --update \ RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime -RUN addgroup -g $GROUP mgmaps && adduser mgmaps -h /mgmaps -D -s /bin/sh -k /dev/null -u $USER -G mgmaps +RUN addgroup -g $GROUP_ID mgmaps && adduser mgmaps -h /mgmaps -D -s /bin/sh -k /dev/null -u $USER_ID -G mgmaps USER mgmaps WORKDIR /html @@ -85,4 +85,4 @@ RUN rm /etc/php7/conf.d/xdebug.ini USER mgmaps -ADD ./app /html \ No newline at end of file +ADD --chown=${USER}:${GROUP} ./app /html \ No newline at end of file diff --git a/build/nginx/Dockerfile b/build/nginx/Dockerfile index 58c96d8..f61718e 100644 --- a/build/nginx/Dockerfile +++ b/build/nginx/Dockerfile @@ -1,5 +1,11 @@ FROM nginx:1.25.3 as development +ARG USER_ID=1000 +ARG GROUP_ID=1000 + +RUN deluser nginx +RUN addgroup --gid $GROUP_ID mgmaps && useradd -d /home/mgmaps -u $USER_ID -g $GROUP_ID -m -s /bin/bash mgmaps + RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime ADD ./build/nginx/config/nginx.conf /etc/nginx/nginx.conf @@ -8,13 +14,13 @@ ADD ./build/nginx/config/maps.conf /etc/nginx/conf.d/maps.conf # Fix directories the root image is using RUN mkdir -p /var/cache/nginx/client_temp && \ - chown -R nginx:nginx /var/cache/nginx + chown -R $USER_ID:$GROUP_ID /var/cache/nginx -USER nginx +USER mgmaps WORKDIR /html CMD ["nginx"] FROM development as production -ADD ./app /html \ No newline at end of file +ADD --chown=${USER_ID}:${GROUP_ID} ./app /html \ No newline at end of file diff --git a/build/node/Dockerfile b/build/node/Dockerfile index 42f90c7..142f808 100644 --- a/build/node/Dockerfile +++ b/build/node/Dockerfile @@ -1,11 +1,11 @@ ARG NODE_TAG=10 FROM node:${NODE_TAG} -ARG USER=1000 -ARG GROUP=1000 +ARG USER_ID=1000 +ARG GROUP_ID=1000 RUN deluser --remove-home node -RUN addgroup --gid $GROUP mgmaps && useradd -d /home/mgmaps -u $USER -g $GROUP -m -s /bin/bash mgmaps +RUN addgroup --gid $GROUP_ID mgmaps && useradd -d /home/mgmaps -u $USER_ID -g $GROUP_ID -m -s /bin/bash mgmaps USER mgmaps RUN mkdir -p /home/mgmaps/.npm diff --git a/docker-compose.yml b/docker-compose.yml index ed31156..e233dc0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,29 +8,35 @@ services: dockerfile: ./build/nginx/Dockerfile target: ${ENVIRONMENT} args: - USER: ${USER} - GROUP: ${GROUP} - image: metagermaps:nginx-${IMAGE_TAG} + USER: ${USER_ID} + GROUP: ${GROUP_ID} + image: ${IMAGE_NAME}/nginx:${IMAGE_TAG} ports: - 8080:80 working_dir: /html - volumes: - - ./app:/html + # volumes: + # - ./app:/html fpm: restart: unless-stopped build: dockerfile: ./build/fpm/Dockerfile target: ${ENVIRONMENT} - image: metagermaps:fpm-${IMAGE_TAG} + args: + USER: ${USER_ID} + GROUP: ${GROUP_ID} + image: ${IMAGE_NAME}/fpm:${IMAGE_TAG} volumes: - - ./app:/html + # - ./app:/html - vendor:/html/vendor - bootstrap-cache:/html/bootstrap/cache assets: restart: unless-stopped - image: metagermaps:node-${IMAGE_TAG} + image: ${IMAGE_NAME}/node:${NODE_TAG} build: dockerfile: ./build/node/Dockerfile + args: + USER: ${USER_ID} + GROUP: ${GROUP_ID} volumes: - ./app:/app - npm-cache:/home/mgmaps/.npm @@ -39,7 +45,10 @@ services: build: dockerfile: ./build/fpm/Dockerfile target: composer - image: metagermaps:composer-${IMAGE_TAG} + args: + USER: ${USER_ID} + GROUP: ${GROUP_ID} + image: ${IMAGE_NAME}/composer:${IMAGE_TAG} volumes: - ./app:/html - composer-cache:/mgmaps/.composer -- GitLab