mirror of
https://github.com/tiennm99/composes.git
synced 2026-10-18 18:15:14 +00:00
feat(paseo): add Go, Python, shell tooling, hostname and timezone
Go 1.26.8 from the official tarball and Python 3.12 via uv, since Debian 12 carries 1.19 and 3.11. Both land outside $HOME, which the paseo-home volume would otherwise mask. Hostname and timezone come from the environment rather than being fixed in the compose file. Paseo uses the container hostname as the host label in its web UI, so without one the UI shows a random container ID.
This commit is contained in:
1 parent
6590c59f40
commit
5a4348cde7
5 files changed
+69
-16
No files matched your search
+28
-10
@@ -1,18 +1,20 @@
|
||||
# The official image ships no agent CLIs. Add Claude Code globally under
|
||||
# /usr/local, where the unprivileged paseo user can run it.
|
||||
#
|
||||
# npm here delivers the same native binary as the standalone installer -- it is
|
||||
# not a Node wrapper. Do not swap this for the `curl | bash` installer: that
|
||||
# writes to $HOME/.local, and $HOME is /home/paseo, a volume mount that masks
|
||||
# anything baked in at build time.
|
||||
# The official image ships no agent CLIs or language toolchains. Add them here.
|
||||
#
|
||||
# Stays root: the entrypoint needs root to chown the mounted volumes, then
|
||||
# drops to paseo with gosu itself.
|
||||
# drops to paseo with gosu itself. Nothing installs into $HOME -- that is
|
||||
# /home/paseo, a volume mount that masks anything baked in at build time.
|
||||
FROM ghcr.io/getpaseo/paseo:latest
|
||||
|
||||
ARG GO_VERSION=1.26.8
|
||||
ARG PYTHON_VERSION=3.12
|
||||
|
||||
# npm here delivers the same native binary as Anthropic's standalone installer;
|
||||
# it is not a Node wrapper. Do not swap it for the `curl | bash` installer,
|
||||
# which writes to $HOME/.local.
|
||||
RUN npm install -g @anthropic-ai/claude-code
|
||||
|
||||
# gh is not in the Debian repos, so pull it from GitHub's own signed one.
|
||||
# Everyday shell tooling, plus gh from GitHub's own signed repo since Debian
|
||||
# does not package it.
|
||||
RUN install -d -m 0755 /etc/apt/keyrings \
|
||||
&& curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
|
||||
-o /etc/apt/keyrings/githubcli-archive-keyring.gpg \
|
||||
@@ -20,5 +22,21 @@ RUN install -d -m 0755 /etc/apt/keyrings \
|
||||
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
|
||||
> /etc/apt/sources.list.d/github-cli.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y --no-install-recommends gh \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
gh less jq unzip zip lsof psmisc ugrep bfs zsh \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Python via uv (astral.sh/uv), which fetches a standalone CPython build.
|
||||
# Debian 12 only carries 3.11, and both dirs are kept outside $HOME.
|
||||
ENV UV_INSTALL_DIR=/usr/local/bin \
|
||||
UV_PYTHON_INSTALL_DIR=/opt/python \
|
||||
UV_PYTHON_BIN_DIR=/usr/local/bin
|
||||
RUN curl -fsSL https://astral.sh/uv/install.sh | sh \
|
||||
&& uv python install "${PYTHON_VERSION}" --default
|
||||
|
||||
# Go from the official tarball. Debian 12 carries 1.19, far too old.
|
||||
ENV PATH=/usr/local/go/bin:$PATH
|
||||
RUN curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz" \
|
||||
-o /tmp/go.tar.gz \
|
||||
&& tar -C /usr/local -xzf /tmp/go.tar.gz \
|
||||
&& rm /tmp/go.tar.gz
|
||||
Reference in new issue
Block a user