Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
10 changes: 5 additions & 5 deletions packaging/docker/Dockerfile.debian
Original file line number Diff line number Diff line change
Expand Up @@ -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 && \
Expand Down Expand Up @@ -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"
70 changes: 35 additions & 35 deletions packaging/docker/Dockerfile.debian-multiarch
Original file line number Diff line number Diff line change
Expand Up @@ -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 && \
Expand Down Expand Up @@ -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}
Expand All @@ -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"
6 changes: 3 additions & 3 deletions packaging/docker/Dockerfile.fedora
Original file line number Diff line number Diff line change
Expand Up @@ -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"
8 changes: 4 additions & 4 deletions packaging/docker/Dockerfile.fedora-minimal
Original file line number Diff line number Diff line change
Expand Up @@ -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"
17 changes: 11 additions & 6 deletions packaging/docker/Dockerfile.rocky
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -92,10 +97,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"
101 changes: 101 additions & 0 deletions packaging/docker/Dockerfile.rocky9
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Rockylinux Dockerfile
#
# Author: Steffen Vogel <post@steffenvogel.de>
# 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"
6 changes: 3 additions & 3 deletions packaging/docker/Dockerfile.ubuntu
Original file line number Diff line number Diff line change
Expand Up @@ -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"