FROM python:3.12.4-bookworm ENV DEBIAN_FRONTEND=noninteractive # 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 --roles-path=/ansible/roles # 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 ENTRYPOINT ["/start_tmux.sh"]