Skip to content

Commit aed5424

Browse files
JohnMcLearclaude
andauthored
fix: use hardlink package-import-method so the Docker build works on ZFS (#7342) (#7533)
pnpm's default \`auto\` package-import-method eventually falls through to \`copyfile\`, which uses \`copy_file_range\`. That syscall fails on ZFS with \`EAGAIN: resource temporarily unavailable\` (see pnpm/pnpm#7024), so \`docker compose build\` aborts inside the \`RUN pnpm install\` step on any host with a ZFS root. Operators had to hand-patch every pnpm invocation in the Dockerfile and install scripts. Force \`package-import-method=hardlink\` in \`.npmrc\` so all pnpm invocations (Docker build, \`bin/installDeps.sh\`, \`bin/installLocalPlugins.sh\`, \`bin/updatePlugins.sh\`) pick up the setting automatically. Hardlinks are fast, save disk, and work on every filesystem Etherpad supports. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 706dd4b commit aed5424

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

.npmrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
11
strict-dep-builds=false
2+
# Use hardlinks when populating node_modules instead of clone/copyfile.
3+
# pnpm's default "auto" mode ends up using copy_file_range which fails on
4+
# ZFS (https://github.com/pnpm/pnpm/issues/7024) and breaks `docker
5+
# compose build` on hosts with a ZFS root (#7342). Hardlinks are fast,
6+
# save disk, and work on every filesystem Etherpad supports.
7+
package-import-method=hardlink

0 commit comments

Comments
 (0)