-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathDockerfile
32 lines (26 loc) · 818 Bytes
/
Dockerfile
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
FROM node:22-alpine AS node
WORKDIR /opt
FROM node AS base
COPY ./package.json .
COPY ./package-lock.json .
RUN chown -R nobody:nogroup ./ && \
touch /.npmrc && chown nobody:nogroup /.npmrc && \
mkdir /.npm && chown nobody:nogroup /.npm && \
mkdir ./log && chown nobody:nogroup ./log && \
mkdir ./store && chown nobody:nogroup ./store && \
ln -sf /dev/stdout ./log/stdout.log && \
ln -sf /dev/stderr ./log/stderr.log
USER nobody:nobody
RUN npm config set update-notifier false && \
npm ci --omit dev --fund false
FROM base AS build
RUN npm i --fund false
ADD ./src ./src
COPY ./tsconfig.json .
RUN npm run build
FROM base AS release
COPY --from=build /opt/dist ./dist
ENV NODE_ENV=production
ENV DEBUG=app:*
EXPOSE 80
CMD node ./dist/main.js 1>> ./log/stdout.log 2>> ./log/stderr.log