1- FROM python:3.12-slim
1+ FROM ubuntu:24.04
22
3- # Install essential packages and create non-root user
4- RUN apt-get update && apt-get install -y --no-install-recommends git curl sudo bash-completion vim \
5- && useradd -m -s /bin/bash vscode \
3+ # Install gcc, clang and some supporting tools for downloading/installing later tools.
4+ RUN apt-get update && apt-get install -y --no-install-recommends \
5+ bash-completion \
6+ cmake \
7+ curl \
8+ g++ \
9+ gdb \
10+ git \
11+ gpg \
12+ lcov \
13+ llvm \
14+ ninja-build \
15+ python-is-python3 \
16+ python3-pip \
17+ python3-venv \
18+ software-properties-common \
19+ ssh \
20+ sudo \
21+ unzip \
22+ vim \
23+ wget \
24+ && rm -rf /var/lib/apt/lists/*
25+
26+ # Install bazelisk.
27+ RUN ARCH=$(dpkg --print-architecture) && \
28+ wget -q https://github.com/bazelbuild/bazelisk/releases/download/v1.25.0/bazelisk-linux-${ARCH} -O /usr/local/bin/bazelisk \
29+ && chmod +x /usr/local/bin/bazelisk \
30+ && ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
31+
32+ # Create non-root user and add to sudoers
33+ RUN useradd -m -s /bin/bash vscode \
634 && echo "vscode ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
735 && mkdir -p /workspace \
8- && chown vscode:vscode /workspace \
36+ && chown vscode:vscode /workspace
37+
38+ # Install Node.js (required for Gemini CLI)
39+ RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
40+ && apt-get install -y --no-install-recommends nodejs \
941 && rm -rf /var/lib/apt/lists/*
1042
43+ # Install Gemini CLI globally
44+ RUN npm install -g @google/gemini-cli \
45+ && npm cache clean --force
46+
1147WORKDIR /workspace
1248
1349# Switch to non-root user
@@ -21,4 +57,10 @@ RUN echo 'source /usr/share/bash-completion/completions/git' >> ~/.bashrc \
2157RUN curl -LsSf https://astral.sh/uv/install.sh | sh
2258
2359# Set up environment variables
24- ENV PATH="/home/vscode/.local/bin:${PATH}"
60+ ENV PATH="/home/vscode/.local/bin:/usr/local/bin:${PATH}"
61+ ENV UV_PROJECT_ENVIRONMENT="/home/vscode/.venv"
62+
63+ # Pre-configure Gemini CLI
64+ RUN mkdir -p /home/vscode/.gemini \
65+ && echo '{"/workspace": "TRUST_FOLDER"}' > /home/vscode/.gemini/trustedFolders.json \
66+ && echo '{"security": {"auth": {"selectedType": "gemini-api-key"}}}' > /home/vscode/.gemini/settings.json
0 commit comments