FROM ubuntu:latest ENV DEBIAN_FRONTEND=noninteractive # Base packages RUN apt-get update && apt-get install -y \ nano \ curl \ wget \ git \ jq \ ca-certificates \ software-properties-common \ iputils-ping \ zsh \ && rm -rf /var/lib/apt/lists/* # set user with zsh as default shell using default user ubuntu uid RUN usermod -l code ubuntu && \ groupmod -n code ubuntu && \ usermod -d /home/code -m -s /usr/bin/zsh code # Install Oh-My-Zsh for user RUN su code -c "curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh | sh -s -- --unattended" # ---zsh plugins --- RUN su code -c "git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \ /home/code/.oh-my-zsh/custom/plugins/fast-syntax-highlighting" RUN su code -c "git clone https://github.com/zsh-users/zsh-autosuggestions \ /home/code/.oh-my-zsh/custom/plugins/zsh-autosuggestions" # -- install chroma for zsh RUN mkdir /tmp/chroma \ && 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/chroma.tar.gz -i - \ && tar -xzf /tmp/chroma/chroma.tar.gz -C /tmp/chroma \ && install -m 0755 /tmp/chroma/chroma /usr/local/bin/chroma \ && rm -r /tmp/chroma # --- set zsh shell as default --- RUN chsh -s /usr/bin/zsh code # --- copy assets --- COPY ./assets/.zshrc /home/code # --- 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 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 RUN mkdir /workspaces && chown code:code /workspaces -R USER code WORKDIR /workspaces