68 lines
1.5 KiB
Docker
68 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"]
|