build(docker): fix docker build (MisskeyIO#941)

This commit is contained in:
あわわわとーにゅ 2025-03-09 12:29:20 +09:00 committed by GitHub
parent f99dff25d3
commit 38f6f871a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,10 +1,8 @@
# syntax = docker/dockerfile:1.4 # syntax = docker/dockerfile:1.4
ARG NODE_VERSION=22
# build assets & compile TypeScript # build assets & compile TypeScript
FROM --platform=$BUILDPLATFORM node:${NODE_VERSION} AS native-builder FROM --platform=$BUILDPLATFORM node:22 AS native-builder
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \ --mount=type=cache,target=/var/lib/apt,sharing=locked \
@ -17,7 +15,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
WORKDIR /misskey WORKDIR /misskey
COPY --link pnpm-lock.yaml ./ COPY --link pnpm-lock.yaml ./
RUN npm install -g pnpm RUN npm install -g pnpm@9
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \ RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm fetch --ignore-scripts pnpm fetch --ignore-scripts
@ -30,7 +28,7 @@ COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"] COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"] COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
RUN pnpm i --frozen-lockfile --aggregate-output --offline \ RUN pnpm i --frozen-lockfile --aggregate-output --prefer-offline \
&& pnpm rebuild -r && pnpm rebuild -r
COPY --link . ./ COPY --link . ./
@ -39,7 +37,7 @@ RUN NODE_ENV=production pnpm build
# build native dependencies for target platform # build native dependencies for target platform
FROM --platform=$TARGETPLATFORM node:${NODE_VERSION} AS target-builder FROM --platform=$TARGETPLATFORM node:22 AS target-builder
RUN apt-get update \ RUN apt-get update \
&& apt-get install -yqq --no-install-recommends \ && apt-get install -yqq --no-install-recommends \
@ -48,7 +46,7 @@ RUN apt-get update \
WORKDIR /misskey WORKDIR /misskey
COPY --link pnpm-lock.yaml ./ COPY --link pnpm-lock.yaml ./
RUN npm install -g pnpm RUN npm install -g pnpm@9
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \ RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm fetch --ignore-scripts pnpm fetch --ignore-scripts
@ -59,10 +57,10 @@ COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"] COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"] COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
RUN pnpm i --frozen-lockfile --aggregate-output --offline \ RUN pnpm i --frozen-lockfile --aggregate-output --prefer-offline \
&& pnpm rebuild -r && pnpm rebuild -r
FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-slim AS runner FROM --platform=$TARGETPLATFORM node:22-slim AS runner
ARG UID="991" ARG UID="991"
ARG GID="991" ARG GID="991"
@ -81,7 +79,7 @@ RUN apt-get update \
WORKDIR /misskey WORKDIR /misskey
COPY --chown=misskey:misskey pnpm-lock.yaml ./ COPY --chown=misskey:misskey pnpm-lock.yaml ./
RUN npm install -g pnpm RUN npm install -g pnpm@9
COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules