dotfiles/docker/Dockerfile

69 lines
1.5 KiB
Docker

# syntax = docker/dockerfile:1.3
FROM debian:bookworm-20220822-slim
ARG UID=1000
ARG GID=1000
ARG USER=daylin
RUN groupadd -g "${GID}" "${USER}" \
&& useradd -rm -s /usr/bin/zsh -u "${UID}" -g "${GID}" "${USER}"
ENV TERM='xterm-256color'
COPY ./docker/install-packages.sh /usr/bin/install-packages
RUN install-packages \
ca-certificates \
locales \
gcc \
tmux \
curl \
gawk \
zsh \
vim \
git \
python-is-python3 \
python3
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
locale-gen
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
USER "${USER}"
WORKDIR /home/"${USER}"
RUN sh -c "$(curl -fsLS https://chezmoi.io/get)"
COPY --chown="${USER}:${USER}" . .dotfiles
# let chezmoi add the plugins
RUN git config --global --add safe.directory '*'
RUN ./bin/chezmoi init \
--apply \
-S ~/.dotfiles \
--promptString 'git email=daylinmorgan@gmail.com,git name=Daylin Morgan' \
--promptBool 'use gui configs=false'
ENV DOTFILES_DIR="$HOME/.dotfiles" \
PATH="$PATH:$HOME/bin:$HOME/.dotfiles/bin"
# switch back to root for the secrets
USER root
RUN --mount=type=secret,id=GITHUB_TOKEN \
GITHUB_TOKEN=$(cat /run/secrets/GITHUB_TOKEN) \
/home/daylin/.dotfiles/docker/install-tools.sh
USER "${USER}"
ENV DOTFILES_DIR="/home/daylin/.dotfiles" \
PATH="$PATH:/home/daylin/bin:/home/daylin/.dotfiles/bin"
# install general tools used by neovim
RUN ~/.dotfiles/docker/install-dev-envs.sh
# install astronvim
RUN ~/.config/astronvim/install.sh
CMD ["zsh"]