Switch agent job image to Fedora with QoL CLI tooling + neutral shell defaults

- Base fedora:41; reinstall toolchain (node 22, gcc/c++, neovim, tmux, git, etc.)
- Add QoL CLI from the user's Panama setup, all in default Fedora repos: zoxide,
  eza, bat, fzf, fd, gh, gum, ripgrep, bash-completion; oh-my-posh via installer;
  pnpm/yarn/bun via npm; keep codex@0.142.0 + opencode@1.17.9 pinned
- Ship neutral system-wide defaults that work even with an empty/mounted HOME:
  /etc/profile.d/spoon.sh (zoxide/eza/fzf/oh-my-posh init + aliases),
  /etc/tmux.conf (login-shell panes), /etc/spoon/omp.json (default prompt theme)
- .dockerignore: re-include docker/agent-job-rootfs into the build context
- Verified: codex runs a real turn on Fedora (exit 0); all tools present
This commit is contained in:
Gabriel Brown
2026-06-24 09:33:39 -04:00
parent 65aae85369
commit 32a71f00ca
5 changed files with 140 additions and 12 deletions
+42 -11
View File
@@ -1,30 +1,61 @@
FROM docker.io/library/node:22-bookworm
FROM registry.fedoraproject.org/fedora:41
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
ENV LANG=en_US.UTF-8
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
# Core toolchain + interactive/QoL CLI tooling. Everything below is in the
# default Fedora repos (no COPR needed). The QoL set mirrors the user's Panama
# workstation setup so the terminal feels like a real dev box for everyone.
RUN dnf install -y --setopt=install_weak_deps=False --nodocs \
bash \
bash-completion \
bat \
bubblewrap \
build-essential \
ca-certificates \
curl \
eza \
fd-find \
findutils \
fzf \
gcc \
gcc-c++ \
gh \
git \
glibc-langpack-en \
gum \
gzip \
jq \
less \
locales \
make \
ncurses \
neovim \
openssh-client \
nodejs \
nodejs-npm \
openssh-clients \
procps-ng \
python3 \
python3-pip \
ripgrep \
tar \
tmux \
unzip \
wget \
&& corepack enable \
&& corepack prepare pnpm@latest --activate \
&& corepack prepare yarn@stable --activate \
&& npm install -g bun@1.3.10 opencode-ai@1.17.9 @openai/codex@0.142.0 \
&& rm -rf /var/lib/apt/lists/*
which \
zoxide \
&& dnf clean all \
&& rm -rf /var/cache/dnf
# Package managers + pinned agent CLIs (kept identical to the prior image).
# Fedora's nodejs-npm doesn't ship corepack, so install pnpm/yarn via npm.
RUN npm install -g pnpm yarn bun@1.3.10 opencode-ai@1.17.9 @openai/codex@0.142.0 \
&& npm cache clean --force
# oh-my-posh prompt (binary only; we ship our own /etc/spoon/omp.json theme).
RUN curl -fsSL https://ohmyposh.dev/install.sh | bash -s -- -d /usr/local/bin \
&& oh-my-posh version
# Neutral system-wide defaults: /etc/profile.d/spoon.sh, /etc/tmux.conf, theme.
COPY docker/agent-job-rootfs/ /
WORKDIR /workspace