summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Troisi <[email protected]>2025-04-21 14:35:03 -0700
committerGitHub <[email protected]>2025-04-21 14:35:03 -0700
commit7663ccf0bdd31f4da920d8148d5286b6b535b501 (patch)
tree469330c986de1f0990c26066f7372a0e87072ab9
parent3f048bce0f0107423a8a8b76f06aa10e9ae60b47 (diff)
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.
-rw-r--r--Dockerfile5
-rwxr-xr-xscripts/build_sandbox.sh5
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"