dev-containers/web-stack/Dockerfile
2024-10-02 21:45:00 +02:00

73 lines
1.7 KiB
Docker

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 \
&& 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"]