From 89750eab68c9c8595bcf32ca48c8aae3030a27a9 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Tue, 6 May 2025 14:27:16 +0200 Subject: [PATCH] fix(docker): Proprely set linker search path for libOpenDSSC.so Signed-off-by: Steffen Vogel --- packaging/docker/Dockerfile.debian | 64 ++++++++++++------------ packaging/docker/Dockerfile.fedora | 13 ++--- packaging/docker/Dockerfile.rocky | 2 + packaging/docker/Dockerfile.ubuntu | 78 +++++++++++++++--------------- 4 files changed, 82 insertions(+), 75 deletions(-) diff --git a/packaging/docker/Dockerfile.debian b/packaging/docker/Dockerfile.debian index 5dfe8bf69..ab51cf471 100644 --- a/packaging/docker/Dockerfile.debian +++ b/packaging/docker/Dockerfile.debian @@ -17,46 +17,48 @@ ENV DEBIAN_FRONTEND=noninteractive # Toolchain RUN apt-get update && \ apt-get install -y \ - gcc g++ \ - pkg-config cmake make \ - autoconf automake autogen libtool \ - texinfo git git-svn curl tar wget diffutils \ - flex bison \ - protobuf-compiler protobuf-c-compiler \ - clang-format clangd + gcc g++ \ + pkg-config cmake make \ + autoconf automake autogen libtool \ + texinfo git git-svn curl tar wget diffutils \ + flex bison \ + protobuf-compiler protobuf-c-compiler \ + clang-format clangd # Dependencies RUN apt-get update && \ apt-get install -y \ - libssl-dev \ - libgraphviz-dev \ - libprotobuf-dev \ - libprotobuf-c-dev \ - uuid-dev \ - libconfig-dev \ - libnl-3-dev libnl-route-3-dev \ - libcurl4-openssl-dev \ - libjansson-dev \ - libzmq3-dev \ - libnanomsg-dev \ - librabbitmq-dev \ - libmosquitto-dev \ - librdkafka-dev \ - libcomedi-dev \ - libibverbs-dev \ - librdmacm-dev \ - libusb-1.0-0-dev \ - libfmt-dev \ - libspdlog-dev \ - liblua5.3-dev \ - libhiredis-dev \ - libnice-dev \ - libmodbus-dev + libssl-dev \ + libgraphviz-dev \ + libprotobuf-dev \ + libprotobuf-c-dev \ + uuid-dev \ + libconfig-dev \ + libnl-3-dev libnl-route-3-dev \ + libcurl4-openssl-dev \ + libjansson-dev \ + libzmq3-dev \ + libnanomsg-dev \ + librabbitmq-dev \ + libmosquitto-dev \ + librdkafka-dev \ + libcomedi-dev \ + libibverbs-dev \ + librdmacm-dev \ + libusb-1.0-0-dev \ + libfmt-dev \ + libspdlog-dev \ + liblua5.3-dev \ + libhiredis-dev \ + libnice-dev \ + libmodbus-dev # 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 # Expose ports for HTTP and WebSocket frontend EXPOSE 80 diff --git a/packaging/docker/Dockerfile.fedora b/packaging/docker/Dockerfile.fedora index 69b9e3803..1808cc5d5 100644 --- a/packaging/docker/Dockerfile.fedora +++ b/packaging/docker/Dockerfile.fedora @@ -64,8 +64,8 @@ RUN dnf -y install \ hiredis-devel \ libnice-devel \ libmodbus-devel - # TODO: v1.2.1 seems broken. Re-enable once new version is available - # nanomsg-devel +# TODO: v1.2.1 seems broken. Re-enable once new version is available +# nanomsg-devel # Install unpackaged dependencies from source # TODO: We currently need to build with GCC 14 to get OpenDSSC working @@ -79,7 +79,8 @@ RUN echo /usr/local/lib >> /etc/ld.so.conf ADD packaging/patches /deps/patches ADD packaging/deps.sh /deps RUN bash /deps/deps.sh -RUN ldconfig +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 @@ -120,9 +121,9 @@ COPY . /villas/ WORKDIR /villas/build RUN --mount=type=cache,id=${DISTRO}-${FEDORA_VERSION}-${ARCH}-${REF},target=/villas/build \ cmake \ - -DCMAKE_CXX_COMPILER=g++-14 \ - -DCMAKE_C_COMPILER=gcc-14 \ - ${CMAKE_OPTS} .. && \ + -DCMAKE_CXX_COMPILER=g++-14 \ + -DCMAKE_C_COMPILER=gcc-14 \ + ${CMAKE_OPTS} .. && \ make -j$(nproc) install && \ ldconfig diff --git a/packaging/docker/Dockerfile.rocky b/packaging/docker/Dockerfile.rocky index eebd8f448..9a21e3746 100644 --- a/packaging/docker/Dockerfile.rocky +++ b/packaging/docker/Dockerfile.rocky @@ -54,6 +54,8 @@ RUN dnf -y install \ 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 diff --git a/packaging/docker/Dockerfile.ubuntu b/packaging/docker/Dockerfile.ubuntu index 65009bc35..9c5cb806d 100644 --- a/packaging/docker/Dockerfile.ubuntu +++ b/packaging/docker/Dockerfile.ubuntu @@ -18,53 +18,55 @@ ENV DEBIAN_FRONTEND=noninteractive # Toolchain RUN apt-get update && \ apt-get install -y \ - gcc g++ \ - pkg-config cmake make \ - autoconf automake autogen libtool \ - texinfo git git-svn curl tar wget diffutils \ - flex bison \ - protobuf-compiler protobuf-c-compiler \ - clang-format clangd \ - python3-venv \ - ninja-build mercurial \ - xmlto udev + gcc g++ \ + pkg-config cmake make \ + autoconf automake autogen libtool \ + texinfo git git-svn curl tar wget diffutils \ + flex bison \ + protobuf-compiler protobuf-c-compiler \ + clang-format clangd \ + python3-venv \ + ninja-build mercurial \ + xmlto udev # Dependencies RUN apt-get update && \ apt-get install -y \ - libssl-dev \ - libgraphviz-dev \ - libprotobuf-dev \ - libprotobuf-c-dev \ - uuid-dev \ - libconfig-dev \ - libnl-3-dev libnl-route-3-dev \ - libcurl4-openssl-dev \ - libjansson-dev \ - libzmq3-dev \ - libnanomsg-dev \ - librabbitmq-dev \ - libmosquitto-dev \ - librdkafka-dev \ - libcomedi-dev \ - libibverbs-dev \ - librdmacm-dev \ - libusb-1.0-0-dev \ - libwebsockets-dev \ - libfmt-dev \ - libspdlog-dev \ - liblua5.3-dev \ - libhiredis-dev \ - libnice-dev \ - libmodbus-dev \ - libre2-dev \ - libglib2.0-dev \ - libcriterion-dev + libssl-dev \ + libgraphviz-dev \ + libprotobuf-dev \ + libprotobuf-c-dev \ + uuid-dev \ + libconfig-dev \ + libnl-3-dev libnl-route-3-dev \ + libcurl4-openssl-dev \ + libjansson-dev \ + libzmq3-dev \ + libnanomsg-dev \ + librabbitmq-dev \ + libmosquitto-dev \ + librdkafka-dev \ + libcomedi-dev \ + libibverbs-dev \ + librdmacm-dev \ + libusb-1.0-0-dev \ + libwebsockets-dev \ + libfmt-dev \ + libspdlog-dev \ + liblua5.3-dev \ + libhiredis-dev \ + libnice-dev \ + libmodbus-dev \ + libre2-dev \ + libglib2.0-dev \ + libcriterion-dev # 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 # Expose ports for HTTP and WebSocket frontend EXPOSE 80