[2024.2.0-beta.10] docker compose buildがfailする
💡 Summary
2024.2.0-beta.9, 2024.2.0-beta.10のバージョンでdocker compose buildがエラーで終了する。
2024.2.0-beta.8はビルドできた。
メモリ 2GBインスタンスではもうビルド無理?
🥰 Expected Behavior
docker compose buildが正常終了する
🤬 Actual Behavior
docker compose buildがエラーで終了する
docker compose build
[+] Building 94.6s (41/49)
=> [internal] load .dockerignore 0.1s
=> => transferring context: 400B 0.0s
=> [internal] load build definition from Dockerfile 0.2s
=> => transferring dockerfile: 4.52kB 0.0s
=> resolve image config for docker.io/docker/dockerfile:1.4 1.4s
=> CACHED docker-image://docker.io/docker/dockerfile:1.4@sha256:9ba7531bd80fb0a858632727cf7a112fbfd19b17e94c4e84ced81e24ef1a0dbc 0.0s
=> [internal] load metadata for docker.io/library/node:20.10.0-bullseye-slim 0.9s
=> [internal] load metadata for docker.io/library/node:20.10.0-bullseye 1.0s
=> [target-builder 1/11] FROM docker.io/library/node:20.10.0-bullseye@sha256:2df369420e9f9c99dac4e7dee72234ba111e5090493b8a163cdf6d07ca7af214 0.0s
=> [runner 1/15] FROM docker.io/library/node:20.10.0-bullseye-slim@sha256:1d0ce9e6debe189a62c553dc989cb07d28e9bccfb315609f3b26ea7f37a220c4 0.0s
=> [internal] load build context 0.7s
=> => transferring context: 4.09MB 0.6s
=> CACHED [native-builder 2/17] RUN --mount=type=cache,target=/var/cache/apt,sharing=locked --mount=type=cache,target=/var/lib/apt,sharing=locked 0.0s
=> CACHED [native-builder 3/17] RUN corepack enable 0.0s
=> CACHED [native-builder 4/17] WORKDIR /misskey 0.0s
=> CACHED [native-builder 5/17] COPY --link [pnpm-lock.yaml, pnpm-workspace.yaml, package.json, ./] 0.0s
=> CACHED [native-builder 6/17] COPY --link [scripts, ./scripts] 0.0s
=> CACHED [native-builder 7/17] COPY --link [packages/backend/package.json, ./packages/backend/] 0.0s
=> CACHED [native-builder 8/17] COPY --link [packages/frontend/package.json, ./packages/frontend/] 0.0s
=> CACHED [native-builder 9/17] COPY --link [packages/sw/package.json, ./packages/sw/] 0.0s
=> CACHED [native-builder 10/17] COPY --link [packages/misskey-js/package.json, ./packages/misskey-js/] 0.0s
=> CACHED [native-builder 11/17] COPY --link [packages/misskey-reversi/package.json, ./packages/misskey-reversi/] 0.0s
=> CACHED [native-builder 12/17] COPY --link [packages/misskey-bubble-game/package.json, ./packages/misskey-bubble-game/] 0.0s
=> CACHED [native-builder 13/17] RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked pnpm i --frozen-lockfile --aggregate-o 0.0s
=> CACHED [target-builder 2/11] RUN apt-get update && apt-get install -yqq --no-install-recommends build-essential 0.0s
=> CACHED [target-builder 3/11] RUN corepack enable 0.0s
=> CACHED [target-builder 4/11] WORKDIR /misskey 0.0s
=> CACHED [target-builder 5/11] COPY --link [pnpm-lock.yaml, pnpm-workspace.yaml, package.json, ./] 0.0s
=> CACHED [target-builder 6/11] COPY --link [scripts, ./scripts] 0.0s
=> CACHED [target-builder 7/11] COPY --link [packages/backend/package.json, ./packages/backend/] 0.0s
=> CACHED [target-builder 8/11] COPY --link [packages/misskey-js/package.json, ./packages/misskey-js/] 0.0s
=> CACHED [target-builder 9/11] COPY --link [packages/misskey-reversi/package.json, ./packages/misskey-reversi/] 0.0s
=> CACHED [target-builder 10/11] COPY --link [packages/misskey-bubble-game/package.json, ./packages/misskey-bubble-game/] 0.0s
=> CACHED [target-builder 11/11] RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked pnpm i --frozen-lockfile --aggregate-o 0.0s
=> [native-builder 14/17] COPY --link . ./ 4.4s
=> CACHED [runner 2/15] RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg tini curl libjemalloc-dev libjemalloc2 && ln -s 0.0s
=> CACHED [runner 3/15] WORKDIR /misskey 0.0s
=> [runner 4/15] COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules 64.5s
=> [native-builder 15/17] RUN git submodule update --init 2.3s
=> ERROR [native-builder 16/17] RUN pnpm build 83.7s
=> [runner 5/15] COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules 1.0s
=> [runner 6/15] COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-js/node_modules ./packages/misskey-js/node_modules 0.6s
=> [runner 7/15] COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-reversi/node_modules ./packages/misskey-reversi/node 0.5s
=> [runner 8/15] COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-bubble-game/node_modules ./packages/misskey-bubble-g 0.4s
------
> [native-builder 16/17] RUN pnpm build:
#30 1.549
#30 1.549 > [email protected] build /misskey
#30 1.549 > pnpm build-pre && pnpm -r build && pnpm build-assets
#30 1.549
#30 2.318
#30 2.318 > [email protected] build-pre /misskey
#30 2.318 > node ./scripts/build-pre.js
#30 2.318
#30 3.403 Scope: 7 of 8 workspace projects
#30 3.409 packages/misskey-bubble-game build$ node ./build.js
#30 3.422 packages/misskey-js build$ npm run ts
#30 3.422 packages/misskey-reversi build$ node ./build.js
#30 4.303 packages/misskey-reversi build: Done
#30 4.310 packages/misskey-bubble-game build: Done
#30 5.320 packages/misskey-js build: > [email protected] ts
#30 5.322 packages/misskey-js build: > npm run ts-esm && npm run ts-dts
#30 5.790 packages/misskey-js build: > [email protected] ts-esm
#30 5.791 packages/misskey-js build: > tsc --outDir built/esm
#30 17.91 packages/misskey-js build: > [email protected] ts-dts
#30 17.91 packages/misskey-js build: > tsc --outDir built/dts --declaration true --emitDeclarationOnly true --declarationMap true
#30 27.45 packages/misskey-js build: npm notice
#30 27.45 packages/misskey-js build: npm notice New minor version of npm available! 10.2.3 -> 10.4.0
#30 27.46 packages/misskey-js build: npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.4.0>
#30 27.46 packages/misskey-js build: npm notice Run `npm install -g [email protected]` to update!
#30 27.47 packages/misskey-js build: npm notice
#30 27.48 packages/misskey-js build: Done
#30 27.51 packages/frontend build$ vite build
#30 27.51 packages/backend build$ swc src -d built -D
#30 27.52 packages/sw build$ node build.js
#30 27.75 packages/sw build: (node:223) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
#30 27.75 packages/sw build: (Use `node --trace-warnings ...` to show where the warning was created)
#30 29.16 packages/sw build: Starting SW building...
#30 29.30 packages/sw build: done
#30 29.32 packages/sw build: Done
#30 29.69 packages/backend build: Successfully compiled: 798 files, copied 27 files with swc (655.25ms)
#30 29.72 packages/backend build: Done
#30 30.00 packages/frontend build: vite v5.0.12 building for production...
#30 30.14 packages/frontend build: transforming...
#30 59.59 packages/frontend build: ../misskey-bubble-game/built/esm/index.js (1:30) "Mono" is not exported by "../misskey-bubble-game/built/esm/game.js", imported by "../misskey-bubble-game/built/esm/index.js".
#30 81.47 packages/frontend build: ✓ 2376 modules transformed.
#30 81.65 packages/frontend build: <--- Last few GCs --->
#30 81.66 packages/frontend build: [210:0x74f7af0] 53967 ms: Scavenge 964.7 (997.5) -> 962.3 (997.5) MB, 3.44 / 0.00 ms (average mu = 0.820, current mu = 0.817) allocation failure;
#30 81.66 packages/frontend build: [210:0x74f7af0] 53990 ms: Scavenge 965.1 (997.5) -> 962.7 (997.5) MB, 3.87 / 0.00 ms (average mu = 0.820, current mu = 0.817) allocation failure;
#30 81.66 packages/frontend build: [210:0x74f7af0] 54013 ms: Scavenge 966.8 (998.0) -> 963.6 (1006.5) MB, 3.77 / 0.00 ms (average mu = 0.820, current mu = 0.817) allocation failure;
#30 81.66 packages/frontend build: <--- JS stacktrace --->
#30 81.66 packages/frontend build: FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
#30 81.68 packages/frontend build: 1: 0xc9e850 node::Abort() [node]
#30 81.68 packages/frontend build: 2: 0xb720ff [node]
#30 81.68 packages/frontend build: 3: 0xec1a70 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]
#30 81.68 packages/frontend build: 4: 0xec1d57 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]
#30 81.69 packages/frontend build: 5: 0x10d3dc5 [node]
#30 81.69 packages/frontend build: 6: 0x10ebc48 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
#30 81.69 packages/frontend build: 7: 0x10c1d61 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
#30 81.69 packages/frontend build: 8: 0x10c2ef5 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
#30 81.69 packages/frontend build: 9: 0x10a0466 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
#30 81.69 packages/frontend build: 10: 0x14fb386 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
#30 81.70 packages/frontend build: 11: 0x1934ef6 [node]
#30 82.18 packages/frontend build: Aborted (core dumped)
#30 82.26 packages/frontend build: Failed
#30 82.40 /misskey/packages/frontend:
#30 82.40 ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL frontend@ build: `vite build`
#30 82.40 Exit status 134
#30 83.04 ELIFECYCLE Command failed with exit code 1.
------
failed to solve: rpc error: code = Unknown desc = process "/bin/sh -c pnpm build" did not complete successfully: exit code: 1
📝 Steps to Reproduce
git checkout tags/2024.2.0-beta.10 docker compose build
💻 Frontend Environment
* Model and OS of the device(s):
* Browser:
* Server URL: chunchun.world
* Misskey:2024.2.0-beta.10
🛰 Backend Environment (for server admin)
* Installation Method or Hosting Service:docker compose
* Misskey:2024.2.0-beta.10
* Node:20.10.0-bullseye
* PostgreSQL:15-alpine
* Redis:7-alpine
* OS and Architecture: Ubuntu 22.04.3 LTS
* etc: ConoHa Memory 2GB/CPU 3Core
Do you want to address this bug yourself?
- [ ] Yes, I will patch the bug myself and send a pull request
shikiがesmとしてバンドルされるようになったのでそのせいかも
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
:eyes:
viteのメモリ不足かしらね (shikiのせいだとは思う)
2024.2.0でもメモリ2GBサーバでビルドを試みて
[web native-builder 16/17] RUN pnpm build
で JavaScript heap out of memory が出てFailになったので、私も同じ問題に引っかかったっぽいです。
単純にヒープのメモリ容量が足りてないようだったので、一応Swap領域を増やしてからDockerfileに
ENV NODE_OPTIONS=--max-old-space-size=4096
を一行加えて明示的に増やしたところ、こちらの環境ではビルドが通りました。