ARG VARIANT="bookworm" FROM debian:${VARIANT} RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends \ ca-certificates \ zsh \ vim \ tmux \ curl \ wget \ unzip \ git \ python3 \ build-essential \ libssl-dev \ openssh-client \ sudo \ luarocks \ fd-find \ ripgrep \ locales \ tree \ htop \ jq \ man \ && apt-get autoremove -y \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* # Install Neovim ENV TREE_SITTER_VERSION="0.23.1" ENV TREE_SITTER_URL="https://github.com/tree-sitter/tree-sitter/releases/download/v${TREE_SITTER_VERSION}/tree-sitter-linux-arm64.gz" ENV NVIM_VERSION="0.10.0" ENV NVIM_URL="https://gitea.tomastm.com/tomas.mirchev/neovim/releases/download/v${NVIM_VERSION}/nvim-linux-arm64.deb" RUN set -ex \ && mkdir -p /tmp/downloads \ && cd /tmp/downloads \ # Install tree-sitter && wget -O tree-sitter.gz ${TREE_SITTER_URL} \ && gzip -d tree-sitter.gz \ && chmod +x tree-sitter \ && mv tree-sitter /usr/local/bin/ \ # Install Neovim && wget -O nvim.deb ${NVIM_URL} \ && apt-get install -y ./nvim.deb \ # Clean up && rm -rf /tmp/downloads ENV LANG=en_US.UTF-8 ENV LC_ALL=en_US.UTF-8 ENV LC_CTYPE=en_US.UTF-8 RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \ && locale-gen ARG UID=1000 ARG GID=1000 RUN groupadd -g ${GID} dev RUN useradd -u ${UID} -g dev -m -s /bin/zsh dev RUN echo "dev ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers RUN mkdir /workspace && chown dev:dev /workspace WORKDIR /workspace COPY install-tools.sh /usr/local/bin/install-tools.sh RUN chmod +x /usr/local/bin/install-tools.sh USER dev ENV TERM=xterm-256color RUN /usr/local/bin/install-tools.sh CMD ["zsh"]