2024-09-15 20:50:01 +00:00
|
|
|
# Base image using Arch Linux
|
|
|
|
# Date: Sep10 2024
|
|
|
|
# Url: https://hub.docker.com/layers/library/archlinux/latest/images/sha256-a10e51dd0694d6c4142754e9d06cbce7baf91ace8031a30df37064d1091ab414?context=explore
|
|
|
|
FROM archlinux@sha256:a10e51dd0694d6c4142754e9d06cbce7baf91ace8031a30df37064d1091ab414
|
|
|
|
|
|
|
|
# Update the package database and install clang
|
2024-09-28 19:15:31 +00:00
|
|
|
# 1. system tools
|
|
|
|
# 2. build tools
|
|
|
|
# 3. libraries
|
2024-09-15 20:50:01 +00:00
|
|
|
RUN pacman -Syyu --noconfirm \
|
2024-09-28 19:15:31 +00:00
|
|
|
&& pacman -S --noconfirm git less vim sudo base-devel python-pip \
|
|
|
|
&& pacman -S --noconfirm clang cmake make ninja meson \
|
|
|
|
&& pacman -S --noconfirm gtk4 gtkmm-4.0 boost spdlog fmt libxml++-5.0
|
2024-09-15 20:50:01 +00:00
|
|
|
|
|
|
|
# Create a non-root user 'dev'
|
|
|
|
RUN useradd -ms /bin/bash dev \
|
|
|
|
&& echo "dev ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/dev \
|
|
|
|
&& chmod 0440 /etc/sudoers.d/dev
|
|
|
|
|
2024-09-25 16:16:34 +00:00
|
|
|
# Add docker and docker-compose and add permissions to run without sudo
|
|
|
|
COPY --from=library/docker:latest /usr/local/bin/docker /usr/bin/docker
|
|
|
|
COPY --from=docker/compose:latest /usr/local/bin/docker-compose /usr/bin/docker-compose
|
|
|
|
|
|
|
|
RUN groupadd docker &&\
|
|
|
|
usermod -aG docker dev &&\
|
|
|
|
newgrp docker
|
|
|
|
|
2024-09-15 20:50:01 +00:00
|
|
|
# Add the custom bash prompt with branch info
|
|
|
|
RUN printf '\n\
|
|
|
|
function modify_prompt { \n\
|
|
|
|
local __user_and_host="\[\033[01;32m\]\u@\h" \n\
|
|
|
|
local __cur_location="\[\033[01;34m\]\w" \n\
|
|
|
|
local __git_branch_color="\[\033[31m\]" \n\
|
|
|
|
local __git_branch="\$(git branch 2> /dev/null | sed -e \'"'"'/^[^*]/d\'"'"' -e \'"'"'s/* \(.*\)/(\\1)/\'"'"')" \n\
|
|
|
|
local __prompt_tail="\[\033[00m\]$" \n\
|
|
|
|
export PS1="$__user_and_host $__cur_location $__git_branch_color$__git_branch$__prompt_tail " \n\
|
|
|
|
} \n\
|
|
|
|
modify_prompt\n' >> /home/dev/.bashrc
|
|
|
|
|
|
|
|
# Switch to the 'dev' user
|
|
|
|
USER dev
|
|
|
|
|
|
|
|
RUN git config --global core.editor vim
|
|
|
|
|
|
|
|
# Set the default working directory
|
|
|
|
WORKDIR /home/dev
|
|
|
|
|
|
|
|
# Set the default command
|
|
|
|
CMD ["/bin/bash"]
|