mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-13 21:19:42 +02:00
Merge pull request #3168 from cisagov/dk/3166-node-permissions-fix
#3166: Fix for node container permissions bug
This commit is contained in:
commit
1282897660
4 changed files with 29 additions and 3 deletions
|
@ -85,6 +85,7 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app
|
- .:/app
|
||||||
working_dir: /app
|
working_dir: /app
|
||||||
|
entrypoint: /app/node_entrypoint.sh
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
tty: true
|
tty: true
|
||||||
command: ./run_node_watch.sh
|
command: ./run_node_watch.sh
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
FROM docker.io/cimg/node:current-browsers
|
FROM docker.io/cimg/node:current-browsers
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
# Install app dependencies
|
# Install app dependencies
|
||||||
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
||||||
# where available (npm@5+)
|
# where available (npm@5+)
|
||||||
COPY --chown=circleci:circleci package*.json ./
|
COPY --chown=circleci:circleci package*.json ./
|
||||||
|
|
||||||
RUN npm install
|
|
24
src/node_entrypoint.sh
Executable file
24
src/node_entrypoint.sh
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Get UID and GID of the /app directory owner
|
||||||
|
HOST_UID=$(stat -c '%u' /app)
|
||||||
|
HOST_GID=$(stat -c '%g' /app)
|
||||||
|
|
||||||
|
# Check if the circleci user exists
|
||||||
|
if id "circleci" &>/dev/null; then
|
||||||
|
echo "circleci user exists. Updating UID and GID to match host UID:GID ($HOST_UID:$HOST_GID)"
|
||||||
|
|
||||||
|
# Update circleci user's UID and GID
|
||||||
|
groupmod -g "$HOST_GID" circleci
|
||||||
|
usermod -u "$HOST_UID" circleci
|
||||||
|
|
||||||
|
echo "Updating ownership of /app recursively to circleci:circleci"
|
||||||
|
chown -R circleci:circleci /app
|
||||||
|
|
||||||
|
# Switch to circleci user and execute the command
|
||||||
|
echo "Switching to circleci user and running command: $@"
|
||||||
|
su -s /bin/bash -c "$*" circleci
|
||||||
|
else
|
||||||
|
echo "circleci user does not exist. Running command as the current user."
|
||||||
|
exec "$@"
|
||||||
|
fi
|
|
@ -1,4 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
npm install
|
npm install
|
||||||
npm rebuild
|
npm rebuild
|
||||||
dir=./registrar/assets
|
dir=./registrar/assets
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue