From 7663ccf0bdd31f4da920d8148d5286b6b535b501 Mon Sep 17 00:00:00 2001 From: Seth Troisi Date: Mon, 21 Apr 2025 14:35:03 -0700 Subject: [PATCH] Fix Docker Build permission issue (#95) During docker build `npm install` running as node was exiting with 243 (EACCES) from trying to install the tgz files because `npm pack` created the files with 400 permissions on my system. --- Dockerfile | 5 ++--- scripts/build_sandbox.sh | 5 ++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7c101752..e18e63a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,8 +32,7 @@ USER node # install gemini-code and clean up COPY packages/cli/dist/gemini-code-cli-*.tgz /usr/local/share/npm-global/gemini-code-cli.tgz COPY packages/server/dist/gemini-code-server-*.tgz /usr/local/share/npm-global/gemini-code-server.tgz -RUN npm install -g /usr/local/share/npm-global/gemini-code-cli.tgz /usr/local/share/npm-global/gemini-code-server.tgz \ +RUN npm install -g /usr/local/share/npm-global/gemini-code-{cli,server}.tgz \ && npm cache clean --force \ - && rm -f /usr/local/share/npm-global/gemini-code-cli.tgz \ - && rm -f /usr/local/share/npm-global/gemini-code-server.tgz + && rm -f /usr/local/share/npm-global/gemini-code-{cli,server}.tgz diff --git a/scripts/build_sandbox.sh b/scripts/build_sandbox.sh index 47a6749f..cfa4de5c 100755 --- a/scripts/build_sandbox.sh +++ b/scripts/build_sandbox.sh @@ -57,9 +57,12 @@ echo "packing @gemini-code/server ..." rm -f packages/server/dist/gemini-code-server-*.tgz npm pack -w @gemini-code/server --pack-destination ./packages/server/dist &> /dev/null +# Give node user access to tgz files +chmod 755 packages/*/dist/gemini-code-*.tgz + # build container image & prune older unused images # use empty --authfile to skip unnecessary auth refresh overhead echo "building $IMAGE ... (can be slow first time)" $CMD build --authfile <(echo '{}') -t "$IMAGE" . >/dev/null $CMD image prune -f -echo "built $IMAGE" \ No newline at end of file +echo "built $IMAGE"