1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00
VILLASnode/packaging/docker/Dockerfile.rocky
Steffen Vogel 37dec5c55d Install clang-format and clangd in Devcontainers
Signed-off-by: Steffen Vogel <steffen.vogel@opal-rt.com>
2023-09-08 11:37:42 +02:00

97 lines
2.4 KiB
Text

# 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
ARG ROCKY_VERSION=9
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 \
autoconf automake libtool \
flex bison \
texinfo git curl tar \
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
# Add local and 64-bit locations to linker paths
ENV echo /usr/local/lib >> /etc/ld.so.conf && \
echo /usr/local/lib64 >> /etc/ld.so.conf
# or install unpackaged dependencies from source
ADD packaging/deps.sh /
RUN bash deps.sh
# Workaround for libnl3's search path for netem distributions
RUN ln -s /usr/lib64/tc /usr/lib/tc
# 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="Institute for Automation of Complex Power Systems, RWTH Aachen University" \
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"