mirror of
https://github.com/Hestia-Homes/assessment-model.git
synced 2026-06-08 11:37:25 +00:00
50 lines
2 KiB
Docker
50 lines
2 KiB
Docker
FROM library/python:3.12-bookworm
|
|
|
|
ARG USER=vscode
|
|
ARG USER_UID=1000
|
|
ARG USER_GID=1000
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Base CLI tooling (sudo, git, ripgrep/fd for editors, etc.).
|
|
RUN apt update && apt install -y --no-install-recommends \
|
|
sudo jq vim curl bash-completion \
|
|
ripgrep fd-find git make unzip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Passwordless-sudo dev user (UID/GID injected from the host via compose).
|
|
RUN useradd -m -s /bin/bash -u ${USER_UID} ${USER} \
|
|
&& echo "${USER} ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/${USER} \
|
|
&& chmod 0440 /etc/sudoers.d/${USER}
|
|
|
|
# Node 22 (NodeSource).
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
&& apt install -y nodejs
|
|
|
|
# GitHub CLI — used by the postCreate skill installer to authenticate against
|
|
# private Hestia-Homes repos via the host's mounted ~/.config/gh.
|
|
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
|
|
| dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
|
|
&& chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
|
|
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
|
|
> /etc/apt/sources.list.d/github-cli.list \
|
|
&& apt update && apt install -y gh \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Download Neovim (latest release tarball from GitHub) and symlink onto PATH.
|
|
RUN curl -fsSL https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz \
|
|
| tar -xz -C /opt \
|
|
&& ln -s /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim
|
|
|
|
USER ${USER}
|
|
|
|
# LazyVim starter config (.git stripped so the user owns the files).
|
|
RUN git clone https://github.com/LazyVim/starter /home/${USER}/.config/nvim \
|
|
&& rm -rf /home/${USER}/.config/nvim/.git
|
|
|
|
# Download + install Claude Code CLI (installs to ~/.local/bin).
|
|
RUN curl -fsSL https://claude.ai/install.sh | bash
|
|
ENV PATH="/home/${USER}/.local/bin:${PATH}"
|
|
|
|
USER root
|
|
|
|
WORKDIR /workspaces/assessment-model
|