ansible-devspace/Dockerfile
Michael Grote 4821253bc0
Some checks failed
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/build Pipeline failed
test mkdir for bindmount
2024-07-30 11:07:55 +02:00

75 lines
2.2 KiB
Docker

FROM python:3.12.4-bookworm
ENV DEBIAN_FRONTEND=noninteractive
# nötig damit die ansible-tools gefunden werden
ENV PATH="$PATH:/home/ansible-user/.local/bin"
# hadolint ignore=DL3008
RUN apt-get update \
&& apt-get -y --no-install-recommends install \
vim \
figlet \
lolcat \
keychain \
tmux \
htop \
git \
dnsutils \
mc \
ca-certificates \
tree \
wget \
curl \
whois \
net-tools \
apt-transport-https \
moreutils \
acl \
ripgrep \
pwgen \
bc \
jq \
sudo \
&& rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* requirements.txt requirements.yaml \
&& apt-get clean
# 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
# hadolint ignore=DL3008
RUN addgroup --gid 2000 nonroot && \
adduser --uid 2000 --gid 2000 --disabled-password --gecos "" ansible-user && \
echo 'ansible-user ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
# 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 .
# 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
# dotfiles, see: https://git.mgrote.net/mg/dotfiles/raw/branch/master/scripts/setup_minimal.sh
# hadolint ignore=DL3001
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 \
&& ln -s ~/dotfiles/.gitconfig ~/.gitconfig \
&& ln -s ~/dotfiles/.vimrc ~/.vimrc \
&& ln -s ~/dotfiles/vim/spell/ ~/.vim/ \
&& rm ~/.bashrc \
&& ln -s ~/dotfiles/.bash_extra ~/.bashrc \
&& vim +PluginInstall +qall \
&& mkdir /home/ansible-user/ansible-homeserver
ENTRYPOINT ["/home/ansible-user/start_tmux.sh"]
#mount to non root user?