|
| 1 | +# syntax=docker/dockerfile:1 |
1 | 2 | FROM node:22.16-bookworm-slim |
2 | 3 |
|
3 | 4 | ADD https://www.apple.com/appleca/AppleIncRootCertificate.cer /usr/local/share/ca-certificates/AppleIncRootCertificate.cer |
4 | 5 | ADD https://www.apple.com/certificateauthority/AppleRootCA-G2.cer /usr/local/share/ca-certificates/AppleRootCA-G2.cer |
5 | 6 | ADD https://www.apple.com/certificateauthority/AppleRootCA-G3.cer /usr/local/share/ca-certificates/AppleRootCA-G3.cer |
6 | 7 |
|
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 |
10 | 16 |
|
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 |
17 | 17 | WORKDIR /opt/app |
18 | 18 |
|
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/ |
20 | 23 |
|
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 |
27 | 25 |
|
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 |
29 | 28 |
|
30 | | -COPY build . |
31 | | - |
32 | | -RUN chown -R node:node /opt/app |
33 | | -USER node |
| 29 | +COPY --chown=node:node build . |
34 | 30 |
|
35 | 31 | CMD ["dumb-init", "node", "bin/cli", "api"] |
36 | | - |
0 commit comments