Skip to content

Commit ce0e6eb

Browse files
authored
refactor: optimize Dockerfile for improved build efficiency (#3386)
1 parent 1569fc8 commit ce0e6eb

1 file changed

Lines changed: 17 additions & 22 deletions

File tree

Dockerfile

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,31 @@
1+
# syntax=docker/dockerfile:1
12
FROM node:22.16-bookworm-slim
23

34
ADD https://www.apple.com/appleca/AppleIncRootCertificate.cer /usr/local/share/ca-certificates/AppleIncRootCertificate.cer
45
ADD https://www.apple.com/certificateauthority/AppleRootCA-G2.cer /usr/local/share/ca-certificates/AppleRootCA-G2.cer
56
ADD https://www.apple.com/certificateauthority/AppleRootCA-G3.cer /usr/local/share/ca-certificates/AppleRootCA-G3.cer
67

7-
RUN chmod 644 /usr/local/share/ca-certificates/AppleIncRootCertificate.cer && \
8-
chmod 644 /usr/local/share/ca-certificates/AppleRootCA-G2.cer && \
9-
chmod 644 /usr/local/share/ca-certificates/AppleRootCA-G3.cer
8+
RUN chmod 644 /usr/local/share/ca-certificates/*.cer && \
9+
apt-get update && \
10+
apt-get install -y --no-install-recommends ca-certificates dumb-init && \
11+
update-ca-certificates && \
12+
rm -rf /var/lib/apt/lists/* && \
13+
npm install -g corepack@0.31.0 && \
14+
mkdir -p /opt/app && \
15+
chown -R node:node /opt/app
1016

11-
RUN apt-get update \
12-
&& apt-get install -y ca-certificates dumb-init \
13-
&& update-ca-certificates \
14-
&& rm -rf /var/lib/apt/lists/*
15-
16-
RUN mkdir -p /opt/app
1717
WORKDIR /opt/app
1818

19-
RUN npm install -g corepack@0.31.0
19+
COPY --chown=node:node .npmrc package.json pnpm-lock.yaml ./
20+
COPY --chown=node:node patches patches
21+
COPY --chown=node:node queries queries
22+
COPY --chown=node:node clickhouse/migrations/*.sql clickhouse/migrations/
2023

21-
COPY .npmrc .
22-
COPY package.json .
23-
COPY pnpm-lock.yaml .
24-
COPY patches patches
25-
COPY queries queries
26-
COPY clickhouse/migrations/*.sql clickhouse/migrations/
24+
USER node
2725

28-
RUN pnpm install --frozen-lockfile
26+
RUN --mount=type=cache,id=pnpm,target=/home/node/.local/share/pnpm/store \
27+
pnpm install --frozen-lockfile
2928

30-
COPY build .
31-
32-
RUN chown -R node:node /opt/app
33-
USER node
29+
COPY --chown=node:node build .
3430

3531
CMD ["dumb-init", "node", "bin/cli", "api"]
36-

0 commit comments

Comments
 (0)