-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathDockerfile
More file actions
49 lines (33 loc) · 1.17 KB
/
Dockerfile
File metadata and controls
49 lines (33 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# ===== RUNTIME =====
FROM node:24-bookworm as runtime
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends ffmpeg && \
rm -rf /var/lib/apt/lists/*
# ===== APP ====
FROM runtime as app
# add sources
COPY --chown=node . /workspaces/zundacord
WORKDIR /workspaces/zundacord
# make ready
RUN su node -c "npm run prod"
# update uid, gid to local user
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN groupmod --gid $USER_GID node \
&& usermod --uid $USER_UID --gid $USER_GID node \
&& chown -R $USER_UID:$USER_GID /home/node
USER node
ENTRYPOINT []
CMD [ "npm", "start" ]
# ===== DEVELOP =====
FROM runtime as devcontainer
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends sudo
# sudo
# https://github.com/microsoft/vscode-dev-containers/blob/cda9aea1d48578fe2accf667b65a6c6d147d00d1/script-library/common-debian.sh#L208
RUN echo "node ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/node && \
chmod 0440 /etc/sudoers.d/node
ARG WORKSPACE_DIR
WORKDIR $WORKSPACE_DIR
# expose npm cache to workspace to enable ci caching
RUN sudo -u node npm config set cache=.npm