Skip to content

Commit

Permalink
🔀 Merge pull request gchq#495 from Singebob/master
Browse files Browse the repository at this point in the history
Add group and user in dockerfile to run container as unprivileged
Fixes gchq#340
Thank you @Singebob
  • Loading branch information
Lissy93 committed Feb 19, 2022
2 parents 2e63da0 + bbbcd09 commit 5aff97a
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,32 @@ FROM node:16.13.2-alpine
# Define some ENV Vars
ENV PORT=80 \
DIRECTORY=/app \
IS_DOCKER=true
IS_DOCKER=true \
USER=docker \
UID=12345 \
GID=23456

# Install tini for initialization and tzdata for setting timezone
RUN apk add --no-cache tzdata tini \
# Add group
&& addgroup --gid ${GID} "${USER}" \
# Add user
&& adduser \
--disabled-password \
--ingroup "${USER}" \
--gecos "" \
--home "${DIRECTORY}" \
--no-create-home \
--uid "$UID" \
"$USER"

USER ${USER}

# Create and set the working directory
WORKDIR ${DIRECTORY}

# Install tini for initialization and tzdata for setting timezone
RUN apk add --no-cache tzdata tini

# Copy built application from build phase
COPY --from=BUILD_IMAGE /app ./
COPY --from=BUILD_IMAGE --chown=${USER}:${USER} /app ./

# Finally, run start command to serve up the built application
ENTRYPOINT [ "/sbin/tini", "--" ]
Expand Down

0 comments on commit 5aff97a

Please sign in to comment.