FROM library/python:3.12-bullseye 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\ && 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 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 Claude USER ${USER} 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 ENV PATH="/home/vscode/.local/bin:${PATH}" USER root # Set the working directory WORKDIR /workspaces/assessment-model