assessment-model/.devcontainer/Dockerfile
2026-04-27 12:19:55 +00:00

74 lines
No EOL
2.7 KiB
Docker

FROM library/python:3.12-bookworm
ARG USER=vscode
ARG USER_UID=1000
ARG USER_GID=1000
ARG DEBIAN_FRONTEND=noninteractive
# Install system dependencies in a single layer
RUN apt update && apt install -y --no-install-recommends \
sudo jq vim curl bash-completion \
&& apt autoremove -y \
&& rm -rf /var/lib/apt/lists/*
# Create the user and grant sudo privileges
RUN useradd -m -s /bin/bash ${USER} \
&& echo "${USER} ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers.d/${USER} \
&& chmod 0440 /etc/sudoers.d/${USER}
# Install Node.js 22 (from NodeSource)
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
&& apt install -y nodejs \
&& node -v \
&& npm -v
# Install Backlog.md (task/todo CLI: https://github.com/MrLesk/Backlog.md)
RUN npm install -g backlog.md
# # Install aws
# RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# RUN unzip awscliv2.zip
# RUN ./aws/install
# # Install terraform
# RUN apt-get update && sudo apt-get install -y gnupg software-properties-common
# RUN wget -O- https://apt.releases.hashicorp.com/gpg | \
# gpg --dearmor | \
# sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg > /dev/null
# RUN echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
# https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
# tee /etc/apt/sources.list.d/hashicorp.list
# RUN apt update
# RUN apt-get install terraform
# RUN terraform -install-autocomplete
# Install Neovim (latest) + LazyVim deps
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 \
&& apt update && apt install -y --no-install-recommends \
ripgrep fd-find git make unzip \
&& rm -rf /var/lib/apt/lists/*
# Install Claude
USER ${USER}
# Bootstrap LazyVim starter config
RUN git clone https://github.com/LazyVim/starter /home/${USER}/.config/nvim \
&& rm -rf /home/${USER}/.config/nvim/.git
# Install Claude + plugins + skills
RUN curl -fsSL https://claude.ai/install.sh | bash \
&& export PATH="/home/${USER}/.local/bin:${PATH}" \
&& claude plugin marketplace add JuliusBrussee/caveman \
&& claude plugin install caveman@caveman \
&& npx skills@latest add --global --yes mattpocock/skills/grill-me \
&& npx skills@latest add --global --yes mattpocock/skills/to-prd \
&& npx skills@latest add --global --yes mattpocock/skills/ubiquitous-language \
&& npx skills@latest add --global --yes mattpocock/skills/tdd \
&& npx skills@latest add --global --yes mattpocock/skills/improve-codebase-architecture
ENV PATH="/home/vscode/.local/bin:${PATH}"
USER root
# Set the working directory
WORKDIR /workspaces/assessment-model