summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authorOlcan <[email protected]>2025-04-20 08:22:17 -0700
committerGitHub <[email protected]>2025-04-20 08:22:17 -0700
commit99f5ed9ecb2aa491612ecaed4139cdeda086681f (patch)
treed3dbb72075c2a8afc51abe895fdda070442ecc0e /Dockerfile
parent044ccc6dd710c660faf6220409358eff375a099c (diff)
Minimal container setup. Install docker (or podman), build container with scripts/build_container.sh, then start with scripts/start_container.sh. Exit with ^C for now. (#61)
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile39
1 files changed, 39 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..7c101752
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,39 @@
+FROM node:20-slim
+
+# install minimal set of packages, then clean up
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ man-db \
+ curl \
+ dnsutils \
+ less \
+ jq \
+ bc \
+ gh \
+ git \
+ unzip \
+ rsync \
+ ripgrep \
+ procps \
+ psmisc \
+ lsof \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+# set up npm global package folder under /usr/local/share
+# give it to non-root user node, already set up in base image
+RUN mkdir -p /usr/local/share/npm-global \
+ && chown -R node:node /usr/local/share/npm-global
+ENV NPM_CONFIG_PREFIX=/usr/local/share/npm-global
+ENV PATH=$PATH:/usr/local/share/npm-global/bin
+
+# switch to non-root user node
+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 \
+ && 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
+