Josh Brickner преди 2 години
родител
ревизия
3de3aeba8a
променени са 4 файла, в които са добавени 21 реда и са изтрити 11 реда
  1. 3 2
      Makefile
  2. 8 3
      base/Dockerfile
  3. 2 1
      base/build-root.sh
  4. 8 5
      docker-compose.yml

+ 3 - 2
Makefile

@@ -3,7 +3,8 @@ build:
 	touch dotfiles/init.vim
 	touch dotfiles/setup.sh
 	chmod +x dotfiles/setup.sh
-	docker compose build devenv
+	docker compose build devenv devenv
 run:
-	docker compose run devenv
+	docker compose up -d
+	docker attach devenv
 

+ 8 - 3
base/Dockerfile

@@ -1,9 +1,11 @@
 FROM ubuntu:22.04 AS devinstall
 
-
 ARG TZ
 ARG DEVENV_LOCALE
+ARG UID
+ARG GID
 ARG DEVENV_USER
+ARG DEVENV_GROUP
 ARG DEVENV_PASS
 ARG DEVENV_EMAIL
 ARG DEVENV_MOUNT_PATH
@@ -14,8 +16,11 @@ ARG DEVENV_SH_USER
 ARG DEVENV_SH_PASS
 
 ENV TZ=$DEVENV_TZ
+ENV UID=$UID
+ENV GID=$GID
 ENV DEVENV_LOCALE=$DEVENV_LOCALE
 ENV DEVENV_USER=$DEVENV_USER
+ENV DEVENV_GROUP=$DEVENV_GROUP
 ENV DEVENV_PASS=$DEVENV_PASS
 ENV DEVENV_EMAIL=$DEVENV_EMAIL
 ENV DEVENV_MOUNT_PATH=$DEVENV_MOUNT_PATH
@@ -37,9 +42,9 @@ COPY base/build-root.sh /build-root.sh
 RUN /build-root.sh
 
 FROM devbase AS devinit
-USER ${DEVENV_USER}
+USER ${UID}
 WORKDIR /home/${DEVENV_USER}
-RUN sudo chown -R ${DEVENV_USER}:${DEVENV_USER} /home/${DEVENV_USER}
+RUN sudo chown -R ${DEVENV_USER}:${DEVENV_GROUP} /home/${DEVENV_USER}
 COPY base/build-init-user.sh /home/${DEVENV_USER}/build-init-user.sh
 RUN ./build-init-user.sh
 

+ 2 - 1
base/build-root.sh

@@ -1,6 +1,7 @@
 #!/bin/sh
 
-useradd -m $DEVENV_USER
+groupadd -g $GID $DEVENV_GROUP
+useradd -m -u $UID -g $GID $DEVENV_USER
 
 chsh root -s $(which zsh)
 chsh $DEVENV_USER -s $(which zsh)

+ 8 - 5
docker-compose.yml

@@ -7,7 +7,10 @@ services:
       context: .
       dockerfile: base/Dockerfile
       args:
+        - "UID=${UID}"
+        - "GID=${GID}"
         - "DEVENV_USER=${DEVENV_USER}"
+        - "DEVENV_GROUP=${DEVENV_GROUP}"
         - "DEVENV_PASS=${DEVENV_PASS}"
         - "DEVENV_EMAIL=${DEVENV_EMAIL}"
         - "DEVENV_LOCALE=${DEVENV_LOCALE}"
@@ -18,14 +21,14 @@ services:
         - "DEVENV_SH_PASS=${DEVENV_SH_PASS}"
         - "PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/home/${DEVENV_USER}/perl5/bin"
     volumes:
-      - ${DEVENV_MOUNT_PATH}:/home/${DEVENV_USER}/code
-      - ./dotfiles:/home/${DEVENV_USER}/all_dotfiles
-      - copilot:/home/${DEVENV_USER}/.config/github-copilot
+      - "${DEVENV_MOUNT_PATH}:/home/${DEVENV_USER}/code"
+      - "./dotfiles:/home/${DEVENV_USER}/all_dotfiles"
+        # - "copilot:/home/${DEVENV_USER}/.config/github-copilot"
     ports:
-      - 9003:9003
+      - 9004:9004
     stdin_open: true
     tty: true
-    user: ${DEVENV_USER}:${DEVENV_GROUP}
+    user: "${UID}:${GID}"
 volumes:
   copilot: