Dateien nach "/" hochladen

This commit is contained in:
chef 2025-01-15 22:36:22 +01:00
parent feab765cc0
commit 61c0eb55c6
3 changed files with 239 additions and 0 deletions

35
base.dockerfile Normal file
View File

@ -0,0 +1,35 @@
FROM ubuntu:noble-20241015
LABEL title="Bußmann IT Development Image"
LABEL description="DEV Container for Bußmann IT"
LABEL authors="manuel.bussmann@it-bussmann.de"
LABEL vendor="IT Bußmann"
LABEL version="0.1"
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
# Install Essentials
RUN apt update && apt install -y --no-install-recommends \
libprotobuf32 \
openssl \
nodejs \
zstd \
systemd \
gperf \
postgresql-common \
mesa-va-drivers \
intel-media-va-driver \
libxcb-cursor0 \
libxcb-keysyms1 \
libxcb-icccm4 \
libpcre2-16-0 \
curl \
ca-certificates \
gnupg
# Add NanoMQ repository and Install
RUN curl -fsSL "https://packages.emqx.com/emqx/nanomq/gpgkey" | gpg --dearmor -o /usr/share/keyrings/emqx_nanomq-archive-keyring.gpg && curl -sSf "https://assets.emqx.com/scripts/emqx_nanomq.list" > /etc/apt/sources.list.d/emqx_nanomq.list
RUN apt-get update && apt-get install -y nanomq && apt-get remove -y curl
# Set system language
ENV LANG=C.UTF-8

180
dev.dockerfile Normal file
View File

@ -0,0 +1,180 @@
FROM git.bussmann-os.de/Software-Entwicklung/docker_images/base:latest
#FROM gen3-base
LABEL title="Bußmann IT Development Image"
LABEL description="DEV Container for Bußmann IT"
LABEL authors="manuel.bussmann@it-bussmann.de"
LABEL vendor="IT Bußmann"
LABEL version="0.1"
SHELL ["/bin/bash", "-c"]
# Set Language
ENV LANG=C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive
# Install Essentials
RUN apt update && apt install -y \
build-essential \
gdb \
rsync \
doxygen \
graphviz \
doxyqml \
cmake \
ninja-build \
curl \
zip \
python3 \
python3-html5lib \
python3-jinja2 \
python3-git \
openssl \
libssl-dev \
git \
ssh \
sudo \
dos2unix \
perl \
libcups2-dev \
libboost-all-dev \
libgmock-dev \
libgtest-dev \
libgl1-mesa-dev \
libvulkan-dev \
libxkbcommon-dev \
libglib2.0-dev \
libwayland-dev \
protobuf-compiler \
libprotoc-dev \
libpq-dev \
wget \
nano \
vim \
# Install libs for Qt modules
libdrm-dev \
libinput-dev \
libpulse-dev \
bison \
flex \
libnss3-dev \
libdbus-1-dev \
libgbm-dev \
libwebp-dev \
libjpeg-dev \
libicu-dev \
libhunspell-dev \
libva-dev \
libavcodec-dev \
libavformat-dev \
libzstd-dev \
libsystemd-dev \
libxrandr-dev \
# Install x11-libs
libfontconfig1-dev \
libfreetype6-dev \
libx11-dev \
libx11-xcb-dev \
libxext-dev \
libxfixes-dev \
libxi-dev \
libxrender-dev \
libxcb1-dev \
libxcb-cursor-dev \
libxcb-glx0-dev \
libxcb-keysyms1-dev \
libxcb-image0-dev \
libxcb-shm0-dev \
libxcb-icccm4-dev \
libxcb-sync-dev \
libxcb-xfixes0-dev \
libxcb-shape0-dev \
libxcb-randr0-dev \
libxcb-render-util0-dev \
libxcb-util-dev \
libxcb-xinerama0-dev \
libxcb-xkb-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev \
libxcb-xinput-dev \
libxcomposite-dev \
libxcursor-dev \
libxshmfence-dev \
libxtst-dev \
libxkbfile-dev \
# Install useful analysis tools
shellcheck \
valgrind \
# Utils
gcovr \
graphviz \
plantuml \
clang-tidy-18 \
clang-format-18 \
clang-tools-18 \
clangd-18 \
llvm-18-dev \
lld-18 \
lldb-18 \
llvm-18-tools \
libomp-18-dev \
libc++-18-dev \
libc++abi-18-dev \
libclang-common-18-dev \
libclang-18-dev \
libclang-cpp18-dev \
libunwind-18-dev \
zsh
# Create the user
RUN usermod -l dev ubuntu \
&& usermod -d /home/dev -s /bin/bash -m dev \
&& groupmod -n dev ubuntu \
&& echo dev ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/dev \
&& chmod 0440 /etc/sudoers.d/dev
# Create aliases for ls
RUN echo "alias ll='ls -l'" >> /home/dev/.bashrc \
&& echo "alias la='ls -A'" >> /home/dev/.bashrc \
&& echo "alias l='ls -CF'" >> /home/dev/.bashrc
# Install Mireo Async MQTT5 header
RUN cd /root \
&& git clone https://github.com/mireo/async-mqtt5.git \
&& mv /root/async-mqtt5/include/* /usr/include/ \
&& rm -rf async-mqtt5/
# Install oh-my-zsh and copy all zsh configuration files to the user's home directory
RUN sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended && \
cp -r /root/.oh-my-zsh /home/dev/ && \
cp /root/.zshrc /home/dev/ && \
chown -R dev:dev /home/dev/.oh-my-zsh /home/dev/.zshrc
# Enable the following plugins in the .zshrc: git, ubuntu, compleat, aliases, colored-man-pages, cp, dirhistory, fzf, git-extras, brew, dotnet, sudo, zsh-interactive-cd, command-not-found, vscode, ssh
# Disable update checks in the .zshrc
# Modify .zshrc to use "tjkirch" as the default theme
# Install and enable the zsh-motd plugin
RUN sed -i 's/plugins=(git)/plugins=(git ubuntu compleat aliases colored-man-pages cp dirhistory fzf git-extras brew dotnet sudo zsh-interactive-cd command-not-found vscode ssh zsh-motd)/' /home/dev/.zshrc \
&& sed -i 's/# DISABLE_AUTO_UPDATE="true"/DISABLE_AUTO_UPDATE="true"/' /home/dev/.zshrc \
&& sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="tjkirch"/' /home/dev/.zshrc \
&& zsh -c "git clone https://github.com/Kallahan23/zsh-motd /home/dev/.oh-my-zsh/custom/plugins/zsh-motd"
# Use Clang to compile Qt
ENV CXX=/usr/bin/clang++-18
ENV CC=/usr/bin/clang-18
RUN ln -s /usr/bin/clang++-18 /usr/bin/clang++ \
&& ln -s /usr/bin/clang-18 /usr/bin/clang \
&& ln -s /usr/bin/clang-cpp-18 /usr/bin/clang-cpp \
&& ln -s /usr/bin/clangd-18 /usr/bin/clangd \
&& ln -s /usr/bin/clang-format-18 /usr/bin/clang-format \
&& ln -s /usr/bin/llvm-config-18 /usr/bin/llvm-config
ADD docker/make_llvm_pkgconfig.sh /root/make_llvm_pkgconfig.sh
RUN /root/make_llvm_pkgconfig.sh > /usr/lib/x86_64-linux-gnu/pkgconfig/libunwind.pc \
&& rm -rf /root/make_llvm_pkgconfig.sh

24
environment.dockerfile Normal file
View File

@ -0,0 +1,24 @@
FROM git.bussmann-os.de/Software-Entwicklung/docker_images/dev:latest as dev
#FROM gen3-dev as dev
SHELL ["/bin/bash", "-c"]
LABEL title="Bußmann IT Development Image"
LABEL description="DEV Container for Bußmann IT"
LABEL authors="manuel.bussmann@it-bussmann.de"
LABEL vendor="IT Bußmann"
LABEL version="0.1"
# Get Qt6 from qt.dockerfile
COPY --from=qt /opt/qt6/ /opt/qt6/
# Change to CCI user for vcpkg ownage
USER cci
# Add Clang-Format to image
ADD utils/clang/.clang-format /home/dev/.clang-format
# Set system language and compiler variables
ENV LANG=C.UTF-8
ENV CXX=/usr/bin/clang++-18
ENV CC=/usr/bin/clang-18
ENV CLANG=/usr/bin/clang
ENV CLANGXX=/usr/bin/clang++