2024-07-09 22:35:14 +02:00
|
|
|
FROM python:3.12.4-bookworm
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
2024-07-30 10:32:02 +02:00
|
|
|
# Update the package list, install sudo, create a non-root user, and grant password-less sudo permissions
|
|
|
|
# https://dev.to/izackv/running-a-docker-container-with-a-custom-non-root-user-syncing-host-and-container-permissions-26mb
|
|
|
|
RUN apt update && \
|
|
|
|
apt install -y sudo && \
|
|
|
|
addgroup --gid 2000 nonroot && \
|
|
|
|
adduser --uid 2000 --gid 2000 --disabled-password --gecos "" ansible-user && \
|
|
|
|
echo 'ansible-user ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers \
|
|
|
|
&& rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* \
|
|
|
|
&& apt-get clean
|
|
|
|
|
|
|
|
# Set the non-root user as the default user
|
|
|
|
USER ansible-user
|
|
|
|
|
|
|
|
WORKDIR /home/ansible-user/
|
|
|
|
|
|
|
|
COPY --chown=ansible-user:ansible-user requirements.txt .
|
|
|
|
COPY --chown=ansible-user:ansible-user requirements.yaml .
|
|
|
|
COPY --chown=ansible-user:ansible-user start_tmux.sh .
|
|
|
|
COPY --chown=ansible-user:ansible-user version.sh .
|
2024-07-09 22:35:14 +02:00
|
|
|
|
|
|
|
# hadolint ignore=DL3013
|
|
|
|
RUN python3 -m pip install --no-cache-dir --upgrade pip \
|
|
|
|
&& python3 -m pip install --no-cache-dir -r requirements.txt
|
|
|
|
|
|
|
|
RUN ansible-galaxy install -r requirements.yaml --roles-path=/ansible/roles
|
|
|
|
|
|
|
|
# hadolint ignore=DL3008
|
|
|
|
RUN apt-get update \
|
|
|
|
&& apt-get -y --no-install-recommends install \
|
|
|
|
vim \
|
2024-07-29 16:40:36 +02:00
|
|
|
figlet \
|
|
|
|
lolcat \
|
2024-07-25 23:13:58 +02:00
|
|
|
keychain \
|
2024-07-09 22:35:14 +02:00
|
|
|
tmux \
|
|
|
|
htop \
|
|
|
|
git \
|
|
|
|
dnsutils \
|
|
|
|
mc \
|
|
|
|
ca-certificates \
|
|
|
|
tree \
|
|
|
|
wget \
|
|
|
|
curl \
|
|
|
|
whois \
|
|
|
|
net-tools \
|
|
|
|
apt-transport-https \
|
|
|
|
moreutils \
|
|
|
|
acl \
|
|
|
|
ripgrep \
|
|
|
|
pwgen \
|
|
|
|
bc \
|
|
|
|
jq \
|
2024-07-25 23:17:16 +02:00
|
|
|
&& rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* requirements.txt requirements.yaml \
|
2024-07-09 22:35:14 +02:00
|
|
|
&& apt-get clean
|
2024-07-25 23:13:58 +02:00
|
|
|
|
2024-07-25 23:17:16 +02:00
|
|
|
# dotfiles, see: https://git.mgrote.net/mg/dotfiles/raw/branch/master/scripts/setup_minimal.sh
|
2024-07-25 23:18:06 +02:00
|
|
|
# hadolint ignore=DL3001
|
2024-07-25 23:17:16 +02:00
|
|
|
RUN git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim \
|
|
|
|
&& git clone https://git.mgrote.net/mg/dotfiles ~/dotfiles \
|
|
|
|
&& ln -s ~/dotfiles/.tmux.conf ~/.tmux.conf \
|
2024-07-29 16:07:11 +02:00
|
|
|
&& ln -s ~/dotfiles/.gitconfig ~/.gitconfig \
|
2024-07-25 23:17:16 +02:00
|
|
|
&& ln -s ~/dotfiles/.vimrc ~/.vimrc \
|
|
|
|
&& ln -s ~/dotfiles/vim/spell/ ~/.vim/ \
|
2024-07-25 23:20:57 +02:00
|
|
|
&& rm ~/.bashrc \
|
|
|
|
&& ln -s ~/dotfiles/.bash_extra ~/.bashrc \
|
2024-07-29 16:07:11 +02:00
|
|
|
&& vim +PluginInstall +qall
|
2024-07-29 15:59:43 +02:00
|
|
|
|
2024-07-30 09:58:43 +02:00
|
|
|
ENTRYPOINT ["/start_tmux.sh"]
|