62 lines
1.3 KiB
Docker
62 lines
1.3 KiB
Docker
#
|
|
# debian-base: Base Debian image with sudo user
|
|
#
|
|
FROM debian:bookworm-slim AS base
|
|
|
|
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN apt-get -qq update
|
|
RUN apt-get -qq install --no-install-recommends \
|
|
curl \
|
|
gnupg \
|
|
gnupg2 \
|
|
lsb-release \
|
|
openssh-client \
|
|
software-properties-common \
|
|
sudo \
|
|
wget
|
|
|
|
# Create user with sudo priviledge
|
|
RUN useradd -r -u 1001 --create-home -m "test-user"
|
|
RUN echo "test-user ALL=(ALL) NOPASSWD: ALL" \
|
|
>>/etc/sudoers
|
|
|
|
#
|
|
# source: Base image with source copied over
|
|
#
|
|
FROM base AS source
|
|
|
|
ARG DOTFILES_DIR="/workdir/.dotfiles"
|
|
RUN mkdir -p "$DOTFILES_DIR"
|
|
RUN chown -R "test-user" "$DOTFILES_DIR"
|
|
|
|
ADD --chown="test-user" home "$DOTFILES_DIR/home"
|
|
ADD --chown="test-user" install.d "$DOTFILES_DIR/install.d"
|
|
ADD --chown="test-user" script "$DOTFILES_DIR/script"
|
|
WORKDIR "$DOTFILES_DIR"
|
|
|
|
|
|
#
|
|
# install: Installation steps
|
|
#
|
|
FROM source AS install
|
|
|
|
ENV USER=test-user
|
|
ENV SKIP_SUDO_CHECK=true
|
|
ENV SKIP_SSH_CONFIG=true
|
|
ENV SKIP_DOCKER_CONFIG=true
|
|
|
|
USER test-user
|
|
ARG UUID="docker"
|
|
RUN ./script/install
|
|
|
|
|
|
#
|
|
# test: Test entrypoint
|
|
#
|
|
FROM install AS test
|
|
|
|
ADD --chown="test-user" tests "$DOTFILES_DIR/tests"
|
|
WORKDIR "$DOTFILES_DIR/tests"
|
|
ENTRYPOINT [ "./run.sh" ]
|