From 0be7a3bc468948d265e8433d20806f0a063d5ca6 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Thu, 30 Oct 2025 09:32:23 +0100 Subject: [PATCH 1/2] fix(packaging): Update outdated LABELs Signed-off-by: Steffen Vogel --- packaging/docker/Dockerfile.debian | 10 +-- packaging/docker/Dockerfile.debian-multiarch | 70 ++++++++++---------- packaging/docker/Dockerfile.fedora | 6 +- packaging/docker/Dockerfile.fedora-minimal | 8 +-- packaging/docker/Dockerfile.rocky | 8 +-- packaging/docker/Dockerfile.ubuntu | 6 +- 6 files changed, 54 insertions(+), 54 deletions(-) diff --git a/packaging/docker/Dockerfile.debian b/packaging/docker/Dockerfile.debian index b6e2024b9..047680a13 100644 --- a/packaging/docker/Dockerfile.debian +++ b/packaging/docker/Dockerfile.debian @@ -24,7 +24,7 @@ RUN apt-get update && \ flex bison \ protobuf-compiler protobuf-c-compiler \ clang-format clangd \ - python3-venv unzip + python3-venv unzip # Dependencies RUN apt-get update && \ @@ -88,10 +88,10 @@ LABEL \ org.label-schema.schema-version="1.0" \ org.label-schema.name="VILLASnode" \ org.label-schema.license="Apache-2.0" \ - org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \ + org.label-schema.vendor="The VILLASframework authors" \ org.label-schema.author.name="Steffen Vogel" \ org.label-schema.author.email="post@steffenvogel.de" \ - org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Fedora" \ + org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Debian" \ org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \ - org.label-schema.vcs-url="https://git.rwth-aachen.de/acs/public/villas/node" \ - org.label-schema.usage="https://villas.fein-aachen.org/doc/node-installation.html#node-installation-docker" + org.label-schema.vcs-url="https://github.com/VILLASframework/node" \ + org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker" diff --git a/packaging/docker/Dockerfile.debian-multiarch b/packaging/docker/Dockerfile.debian-multiarch index 21f398d75..6007a9efd 100644 --- a/packaging/docker/Dockerfile.debian-multiarch +++ b/packaging/docker/Dockerfile.debian-multiarch @@ -26,13 +26,13 @@ RUN dpkg --add-architecture ${ARCH} # Toolchain RUN apt-get update && \ apt-get install -y \ - crossbuild-essential-${ARCH} \ - pkg-config cmake make \ - autoconf automake autogen libtool \ - texinfo git curl tar wget diffutils \ - flex bison \ - protobuf-compiler protobuf-c-compiler \ - clang-format clangd + crossbuild-essential-${ARCH} \ + pkg-config cmake make \ + autoconf automake autogen libtool \ + texinfo git curl tar wget diffutils \ + flex bison \ + protobuf-compiler protobuf-c-compiler \ + clang-format clangd # Build-time dependencies RUN apt-get update && \ @@ -126,30 +126,30 @@ RUN dpkg --add-architecture ${ARCH} # Run-time dependencies RUN apt-get update && \ apt-get install -y \ - libgomp1:${ARCH} \ - libprotobuf-c1:${ARCH} \ - libssl1.1:${ARCH} \ - libcgraph6:${ARCH} \ - libcdt5:${ARCH} \ - libgvc6:${ARCH} \ - libuuid1:${ARCH} \ - libconfig9:${ARCH} \ - libnl-3-200:${ARCH} \ - libnl-route-3-200:${ARCH} \ - libcurl4:${ARCH} \ - libjansson4:${ARCH} \ - libzmq5:${ARCH} \ - libnanomsg5:${ARCH} \ - librabbitmq4:${ARCH} \ - libmosquitto1:${ARCH} \ - librdkafka1:${ARCH} \ - libcomedi0:${ARCH} \ - libibverbs1:${ARCH} \ - librdmacm1:${ARCH} \ - libusb-1.0-0:${ARCH} \ - liblua5.3-0:${ARCH} \ - libhiredis0.14:${ARCH} \ - libmodbus5:${ARCH} && \ + libgomp1:${ARCH} \ + libprotobuf-c1:${ARCH} \ + libssl1.1:${ARCH} \ + libcgraph6:${ARCH} \ + libcdt5:${ARCH} \ + libgvc6:${ARCH} \ + libuuid1:${ARCH} \ + libconfig9:${ARCH} \ + libnl-3-200:${ARCH} \ + libnl-route-3-200:${ARCH} \ + libcurl4:${ARCH} \ + libjansson4:${ARCH} \ + libzmq5:${ARCH} \ + libnanomsg5:${ARCH} \ + librabbitmq4:${ARCH} \ + libmosquitto1:${ARCH} \ + librdkafka1:${ARCH} \ + libcomedi0:${ARCH} \ + libibverbs1:${ARCH} \ + librdmacm1:${ARCH} \ + libusb-1.0-0:${ARCH} \ + liblua5.3-0:${ARCH} \ + libhiredis0.14:${ARCH} \ + libmodbus5:${ARCH} && \ rm -rf /var/lib/apt/lists/* COPY --from=builder ${PREFIX} ${PREFIX} @@ -168,10 +168,10 @@ LABEL \ org.label-schema.schema-version="1.0" \ org.label-schema.name="VILLASnode" \ org.label-schema.license="Apache-2.0" \ - org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \ + org.label-schema.vendor="The VILLASframework authors" \ org.label-schema.author.name="Steffen Vogel" \ org.label-schema.author.email="post@steffenvogel.de" \ - org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Fedora" \ + org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Debian" \ org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \ - org.label-schema.vcs-url="https://git.rwth-aachen.de/acs/public/villas/node" \ - org.label-schema.usage="https://villas.fein-aachen.org/doc/node-installation.html#node-installation-docker" + org.label-schema.vcs-url="https://github.com/VILLASframework/node" \ + org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker" diff --git a/packaging/docker/Dockerfile.fedora b/packaging/docker/Dockerfile.fedora index 3c3b955ab..17a966d19 100644 --- a/packaging/docker/Dockerfile.fedora +++ b/packaging/docker/Dockerfile.fedora @@ -134,10 +134,10 @@ LABEL \ org.label-schema.schema-version="1.0" \ org.label-schema.name="VILLASnode" \ org.label-schema.license="Apache-2.0" \ - org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \ + org.label-schema.vendor="The VILLASframework authors" \ org.label-schema.author.name="Steffen Vogel" \ org.label-schema.author.email="post@steffenvogel.de" \ org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Fedora" \ org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \ - org.label-schema.vcs-url="https://git.rwth-aachen.de/acs/public/villas/node" \ - org.label-schema.usage="https://villas.fein-aachen.org/doc/node-installation.html#node-installation-docker" + org.label-schema.vcs-url="https://github.com/VILLASframework/node" \ + org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker" diff --git a/packaging/docker/Dockerfile.fedora-minimal b/packaging/docker/Dockerfile.fedora-minimal index 79f7b6d35..addcd6505 100644 --- a/packaging/docker/Dockerfile.fedora-minimal +++ b/packaging/docker/Dockerfile.fedora-minimal @@ -59,10 +59,10 @@ LABEL \ org.label-schema.schema-version="1.0" \ org.label-schema.name="VILLASnode" \ org.label-schema.license="Apache-2.0" \ - org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \ + org.label-schema.vendor="The VILLASframework authors" \ org.label-schema.author.name="Steffen Vogel" \ org.label-schema.author.email="post@steffenvogel.de" \ - org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Fedora" \ + org.label-schema.description="A image containing minimal build-time dependencies for VILLASnode based on Fedora" \ org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \ - org.label-schema.vcs-url="https://git.rwth-aachen.de/acs/public/villas/node" \ - org.label-schema.usage="https://villas.fein-aachen.org/doc/node-installation.html#node-installation-docker" + org.label-schema.vcs-url="https://github.com/VILLASframework/node" \ + org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker" diff --git a/packaging/docker/Dockerfile.rocky b/packaging/docker/Dockerfile.rocky index b84c014df..0178da25d 100644 --- a/packaging/docker/Dockerfile.rocky +++ b/packaging/docker/Dockerfile.rocky @@ -92,10 +92,10 @@ LABEL \ org.label-schema.schema-version="1.0" \ org.label-schema.name="VILLASnode" \ org.label-schema.license="Apache-2.0" \ - org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \ + org.label-schema.vendor="The VILLASframework authors" \ org.label-schema.author.name="Steffen Vogel" \ org.label-schema.author.email="post@steffenvogel.de" \ - org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Fedora" \ + org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Rocky Linux" \ org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \ - org.label-schema.vcs-url="https://git.rwth-aachen.de/acs/public/villas/node" \ - org.label-schema.usage="https://villas.fein-aachen.org/doc/node-installation.html#node-installation-docker" + org.label-schema.vcs-url="https://github.com/VILLASframework/node" \ + org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker" diff --git a/packaging/docker/Dockerfile.ubuntu b/packaging/docker/Dockerfile.ubuntu index 633b98273..730b693d3 100644 --- a/packaging/docker/Dockerfile.ubuntu +++ b/packaging/docker/Dockerfile.ubuntu @@ -95,10 +95,10 @@ LABEL \ org.label-schema.schema-version="1.0" \ org.label-schema.name="VILLASnode" \ org.label-schema.license="Apache-2.0" \ - org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \ + org.label-schema.vendor="The VILLASframework authors" \ org.label-schema.author.name="Steffen Vogel" \ org.label-schema.author.email="post@steffenvogel.de" \ org.label-schema.description="An image containing all build-time dependencies for VILLASnode based on Ubuntu" \ org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \ - org.label-schema.vcs-url="https://git.rwth-aachen.de/acs/public/villas/node" \ - org.label-schema.usage="https://villas.fein-aachen.org/doc/node-installation.html#node-installation-docker" + org.label-schema.vcs-url="https://github.com/VILLASframework/node" \ + org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker" From 318a2ce70b67e8f3e65f4d54edd888c3e2eb0fe9 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Thu, 30 Oct 2025 10:27:12 +0100 Subject: [PATCH 2/2] feat(docker): Add new Dockerimage for Rocky Linux 10 Signed-off-by: Steffen Vogel --- .gitlab-ci.yml | 4 +- packaging/docker/Dockerfile.rocky | 9 ++- packaging/docker/Dockerfile.rocky9 | 101 +++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 packaging/docker/Dockerfile.rocky9 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cce111ed4..50ecfa3f4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -71,7 +71,7 @@ prepare:docker: TARGET: dev parallel: matrix: - - DISTRO: [ubuntu, debian, rocky] + - DISTRO: [ubuntu, debian, rocky, rocky9] - DISTRO: fedora DOCKER_OPTS: --tag ${DOCKER_IMAGE}/dev:${DOCKER_TAG} - DISTRO: fedora @@ -100,7 +100,7 @@ build:source: CMAKE: cmake parallel: matrix: - - DISTRO: [fedora, fedora-minimal, debian, rocky, ubuntu] + - DISTRO: [fedora, fedora-minimal, debian, rocky, rocky9, ubuntu] - DISTRO: fedora CMAKE_EXTRA_OPTS: > -DVILLAS_COMPILE_WARNING_AS_ERROR=ON diff --git a/packaging/docker/Dockerfile.rocky b/packaging/docker/Dockerfile.rocky index 0178da25d..ab3d653d6 100644 --- a/packaging/docker/Dockerfile.rocky +++ b/packaging/docker/Dockerfile.rocky @@ -5,7 +5,7 @@ # SPDX-License-Identifier: Apache-2.0 ARG DISTRO=rockylinux/rockylinux -ARG ROCKY_VERSION=9.6 +ARG ROCKY_VERSION=10 FROM ${DISTRO}:${ROCKY_VERSION} AS dev @@ -48,7 +48,12 @@ RUN dnf -y install \ lua-devel \ hiredis-devel \ libnice-devel \ - libmodbus-devel + fmt-devel \ + spdlog-devel \ + nanomsg-devel \ + libnice-devel \ + libre-devel \ + libwebsockets-devel # Install unpackaged dependencies from source ADD packaging/patches /deps/patches diff --git a/packaging/docker/Dockerfile.rocky9 b/packaging/docker/Dockerfile.rocky9 new file mode 100644 index 000000000..d6e127243 --- /dev/null +++ b/packaging/docker/Dockerfile.rocky9 @@ -0,0 +1,101 @@ +# Rockylinux Dockerfile +# +# Author: Steffen Vogel +# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University +# SPDX-License-Identifier: Apache-2.0 + +ARG DISTRO=rockylinux/rockylinux +ARG ROCKY_VERSION=9.6 + +FROM ${DISTRO}:${ROCKY_VERSION} AS dev + +ARG DISTRO + +USER root + +# Enable Extra Packages for Enterprise Linux (EPEL) repo and PowerTools +RUN dnf -y install epel-release dnf-plugins-core +RUN dnf config-manager --set-enabled crb + +# Toolchain +RUN dnf --allowerasing -y install \ + gcc gcc-c++ \ + pkgconfig cmake make meson \ + autoconf automake libtool ninja-build \ + flex bison \ + texinfo git git-svn curl tar patchutils \ + protobuf-compiler protobuf-c-compiler \ + clang-tools-extra + +# Dependencies +RUN dnf -y install \ + openssl-devel \ + graphviz-devel \ + protobuf-devel \ + protobuf-c-devel \ + libuuid-devel \ + libconfig-devel \ + libnl3-devel \ + libcurl-devel \ + jansson-devel \ + zeromq-devel \ + librabbitmq-devel \ + mosquitto-devel \ + librdkafka-devel \ + libibverbs-devel \ + librdmacm-devel \ + libusb1-devel \ + lua-devel \ + hiredis-devel \ + libnice-devel \ + libmodbus-devel + +# Install unpackaged dependencies from source +ADD packaging/patches /deps/patches +ADD packaging/deps.sh /deps +RUN bash /deps/deps.sh +RUN echo "/usr/local/openDSSC/bin/" > /etc/ld.so.conf.d/opendssc.conf && \ + ldconfig + +# Workaround for libnl3's search path for netem distributions +RUN ln -s /usr/lib64/tc /usr/lib/tc + +# Workaround for broken Linux headers +ADD packaging/reverse-struct-group.patch . +RUN cat /usr/include/linux/pkt_cls.h +RUN patch -F3 -d /usr -p1 -u < reverse-struct-group.patch + +# Expose ports for HTTP and WebSocket frontend +EXPOSE 80 +EXPOSE 443 + +WORKDIR /villas + +ENV LC_ALL=C.UTF-8 +ENV LANG=C.UTF-8 + +FROM dev AS app + +ARG CMAKE_OPTS + +COPY . /villas/ + +RUN rm -rf /villas/build && mkdir /villas/build +WORKDIR /villas/build +RUN cmake ${CMAKE_OPTS} .. && \ + make -j$(nproc) install && \ + ldconfig + +ENTRYPOINT ["villas"] + +LABEL \ + org.label-schema.schema-version="1.0" \ + org.label-schema.name="VILLASnode" \ + org.label-schema.license="Apache-2.0" \ + org.label-schema.vendor="The VILLASframework authors" \ + org.label-schema.author.name="Steffen Vogel" \ + org.label-schema.author.email="post@steffenvogel.de" \ + org.label-schema.description="A image containing all build-time dependencies for VILLASnode based on Rocky Linux 9" \ + org.label-schema.url="http://fein-aachen.org/projects/villas-framework/" \ + org.label-schema.vcs-url="https://github.com/VILLASframework/node" \ + org.label-schema.usage="https://villas.fein-aachen.org/docs/node/installation#docker"