FROM registry.fedoraproject.org/fedora:44 ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0 ENV LANG=en_US.UTF-8 # 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 \ ca-certificates \ curl \ eza \ fd-find \ findutils \ fzf \ gcc \ gcc-c++ \ gh \ git \ glibc-langpack-en \ gum \ gzip \ jq \ less \ make \ ncurses \ neovim \ nodejs \ nodejs-npm \ openssh-clients \ procps-ng \ python3 \ python3-pip \ ripgrep \ tar \ tmux \ unzip \ wget \ 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 @anthropic-ai/claude-code@2.1.207 \ && npm cache clean --force # nvm, system-wide: user dotfiles source /etc/profile.d/nvm.sh (workstation # parity), and NVM_DIR must be writable by the box user (uid 1000) so # `nvm install` works from the shell. PROFILE=/dev/null stops the installer # from editing root's rc files. ENV NVM_DIR=/usr/local/nvm RUN mkdir -p "$NVM_DIR" \ && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | PROFILE=/dev/null bash \ && printf 'export NVM_DIR=/usr/local/nvm\n[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"\n[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"\n' > /etc/profile.d/nvm.sh \ && chown -R 1000:1000 "$NVM_DIR" # 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 CMD ["bash"]