From 80843367d00504319a4a1125078c20fcd2fcc5f5 Mon Sep 17 00:00:00 2001 From: Mitchell R Date: Sun, 24 May 2026 02:15:30 +0200 Subject: [PATCH] fix(docker): copy plugin to /home/bsb/node_modules not /mnt/bsb-plugins /mnt/bsb-plugins is declared as VOLUME in BSB base image. Build-time COPY gets shadowed by empty anonymous volume at runtime. Use /home/bsb/ node_modules which BSB also searches and isn't a VOLUME. Co-Authored-By: Claude Opus 4.6 (1M context) --- deploy/docker/Dockerfile.server | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/deploy/docker/Dockerfile.server b/deploy/docker/Dockerfile.server index 30de39d..007f9ed 100644 --- a/deploy/docker/Dockerfile.server +++ b/deploy/docker/Dockerfile.server @@ -47,12 +47,13 @@ RUN apk add --no-cache gettext ffmpeg RUN mkdir -p /var/lib/betterframe && chown 1000:1000 /var/lib/betterframe -# Install plugin at BSB external plugin path -COPY --from=builder /app/server/package.json /mnt/bsb-plugins/node_modules/@betterframe/server/package.json -COPY --from=builder /app/server/bsb-plugin.json /mnt/bsb-plugins/node_modules/@betterframe/server/bsb-plugin.json -COPY --from=builder /app/server/lib /mnt/bsb-plugins/node_modules/@betterframe/server/lib -COPY --from=builder /app/node_modules /mnt/bsb-plugins/node_modules/@betterframe/server/node_modules -COPY --from=builder /app/tsconfig.base.json /mnt/bsb-plugins/node_modules/@betterframe/server/tsconfig.base.json +# Install plugin into BSB's node_modules (searched at /home/bsb/node_modules) +# /mnt/bsb-plugins is a VOLUME in base image — writes lost at runtime +COPY --from=builder /app/server/package.json /home/bsb/node_modules/@betterframe/server/package.json +COPY --from=builder /app/server/bsb-plugin.json /home/bsb/node_modules/@betterframe/server/bsb-plugin.json +COPY --from=builder /app/server/lib /home/bsb/node_modules/@betterframe/server/lib +COPY --from=builder /app/node_modules /home/bsb/node_modules/@betterframe/server/node_modules +COPY --from=builder /app/tsconfig.base.json /home/bsb/node_modules/@betterframe/server/tsconfig.base.json # Generate sec-config.yaml from template + build args COPY sec-config.template.yaml /tmp/sec-config.template.yaml