-
-
Notifications
You must be signed in to change notification settings - Fork 774
Expand file tree
/
Copy pathDockerfile
More file actions
34 lines (25 loc) 路 980 Bytes
/
Copy pathDockerfile
File metadata and controls
34 lines (25 loc) 路 980 Bytes
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
# Use a lightweight Node.js image https://hub.docker.com/_/node
FROM node:24-alpine
# Set working directory
WORKDIR /src
# Set environment variables
ENV NODE_ENV="production"
# Copy package*.json and .env dependencies
COPY package*.json ./
COPY .env.template ./.env
# Install necessary system packages
RUN apk add --no-cache bash vim
# Install Node.js dependencies (fail the build immediately if install fails,
# so a broken arm64 image is never published)
RUN npm ci --omit=dev --silent \
&& npm cache clean --force \
&& rm -rf /tmp/* /var/tmp/* /usr/share/doc/*
# Copy the application code, already owned by the runtime user
COPY --chown=node:node app app
COPY --chown=node:node public public
# Rename config.template.js to config.js
COPY --chown=node:node ./app/src/config.template.js ./app/src/config.js
# Run as the non-root "node" user (uid/gid 1000) shipped with the base image
USER node
# Set default command to start the application
CMD ["npm", "start"]