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