FROM mcr.microsoft.com/devcontainers/base:jammy ENV DEBIAN_FRONTEND=noninteractive # Base packages RUN apt-get update && apt-get install -y \ curl \ wget \ git \ python3 \ python3-pip \ jq \ ca-certificates \ software-properties-common \ ansible \ rclone \ rsync \ && rm -rf /var/lib/apt/lists/* # --- Install kubectl --- RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \ && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \ && rm kubectl # --- Install Helm --- RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash # --- Install yq --- RUN wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 \ -O /usr/bin/yq && chmod +x /usr/bin/yq # --- Install Node.js (LTS) --- RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y nodejs \ && npm install -g npm@latest # --- Install act (GitHub Actions local runner) --- RUN curl -s https://api.github.com/repos/nektos/act/releases/latest \ | grep "browser_download_url.*linux-amd64.*tar.gz" \ | cut -d '"' -f 4 \ | wget -O /usr/local/bin/act -i - \ && chmod +x /usr/local/bin/act # -- install chroma for zsh RUN curl -s https://api.github.com/repos/alecthomas/chroma/releases/latest \ | grep "browser_download_url.*linux-amd64.*tar.gz" \ | cut -d '"' -f 4 \ | wget -O /tmp/chroma.tar.gz -i - \ && tar -xzf /tmp/chroma.tar.gz -C /usr/local/bin \ && chmod +x /usr/local/bin/chroma # --- set zsh shell --- RUN chsh -s /usr/bin/zsh vscode RUN git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git /home/vscode/.oh-my-zsh/custom/plugins/fast-syntax-highlighting RUN git clone https://github.com/zsh-users/zsh-autosuggestions /home/vscode/.oh-my-zsh/custom/plugins/zsh-autosuggestions # --- copy assets --- COPY ./assets/.zshrc /home/vscode # --- labels --- LABEL dev.containers.timestamp="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"