diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cbcc96bde..f98d74874 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -31,7 +31,7 @@ prepare:docker: --target dev . parallel: matrix: - - DISTRO: [ ubuntu, debian, centos, rocky ] + - DISTRO: [ ubuntu, debian, rocky ] - DISTRO: fedora DOCKER_OPTS: --tag ${DOCKER_IMAGE}/dev:${CI_COMMIT_REF_NAME} - DISTRO: fedora @@ -59,7 +59,7 @@ build:source: CMAKE: cmake parallel: matrix: - - DISTRO: [ fedora, fedora-minimal, debian, centos, rocky, ubuntu ] + - DISTRO: [ fedora, fedora-minimal, debian, rocky, ubuntu ] - DISTRO: fedora-minimal CMAKE_OPTS: -DWITH_API=OFF -DWITH_CLIENTS=OFF @@ -195,39 +195,20 @@ pkg:docker: TARGET: app parallel: matrix: - - DISTRO: alpine - PLATFORM: linux/amd64 - ARCH: amd64 - TRIPLET: x86_64-alpine-linux-musl - - DISTRO: alpine - PLATFORM: linux/arm64/v8 - ARCH: arm64 - TRIPLET: aarch64-alpine-linux-musl - - DISTRO: alpine - PLATFORM: linux/arm/v6 - ARCH: armv6 - TRIPLET: armv6-alpine-linux-musleabihf - - DISTRO: alpine - PLATFORM: linux/arm/v7 - ARCH: armv7 - TRIPLET: armv7-alpine-linux-musleabihf - DISTRO: debian PLATFORM: linux/amd64 ARCH: x86_64 TRIPLET: x86_64-linux-gnu - DOCKER_IMAGE: ${CI_REGISTRY_IMAGE}/debian - DISTRO: debian PLATFORM: linux/arm/v7 ARCH: armhf TRIPLET: arm-linux-gnueabihf DOCKER_FILE: packaging/docker/Dockerfile.debian-multiarch - DOCKER_IMAGE: ${CI_REGISTRY_IMAGE}/debian - DISTRO: debian PLATFORM: linux/arm64/v8 ARCH: arm64 TRIPLET: aarch64-linux-gnu DOCKER_FILE: packaging/docker/Dockerfile.debian-multiarch - DOCKER_IMAGE: ${CI_REGISTRY_IMAGE}/debian needs: [] @@ -242,20 +223,30 @@ deploy:docker: before_script: - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} script: - - docker push ${DOCKER_IMAGE}/dev:${DOCKER_TAG} - docker manifest create ${DOCKER_IMAGE}:${DOCKER_TAG} - ${DOCKER_IMAGE}:${DOCKER_TAG}-amd64 + ${DOCKER_IMAGE}:${DOCKER_TAG}-x86_64 ${DOCKER_IMAGE}:${DOCKER_TAG}-arm64 - ${DOCKER_IMAGE}:${DOCKER_TAG}-armv6 - ${DOCKER_IMAGE}:${DOCKER_TAG}-armv7 - - docker manifest push ${DOCKER_IMAGE}:${DOCKER_TAG} + ${DOCKER_IMAGE}:${DOCKER_TAG}-armhf + - docker manifest push ${DOCKER_IMAGE}:${DOCKER_TAG} + tags: + - docker + needs: + - job: "pkg:docker: [debian, linux/arm64/v8, arm64, aarch64-linux-gnu, packaging/docker/Dockerfile.debian-multiarch]" + - job: "pkg:docker: [debian, linux/arm/v7, armhf, arm-linux-gnueabihf, packaging/docker/Dockerfile.debian-multiarch]" + - job: "pkg:docker: [debian, linux/amd64, x86_64, x86_64-linux-gnu]" + +deploy:docker-dev: + stage: deploy + image: docker:20.10 + variables: + DOCKER_CLI_EXPERIMENTAL: enabled + before_script: + - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} + script: + - docker push ${DOCKER_IMAGE}/dev:${DOCKER_TAG} tags: - docker needs: - - job: "pkg:docker: [alpine, linux/amd64, amd64, x86_64-alpine-linux-musl]" - - job: "pkg:docker: [alpine, linux/arm64/v8, arm64, aarch64-alpine-linux-musl]" - - job: "pkg:docker: [alpine, linux/arm/v6, armv6, armv6-alpine-linux-musleabihf]" - - job: "pkg:docker: [alpine, linux/arm/v7, armv7, armv7-alpine-linux-musleabihf]" - job: "prepare:docker: [fedora, --tag ${DOCKER_IMAGE}/dev:${CI_COMMIT_REF_NAME}]" # Stage: latest @@ -267,26 +258,44 @@ deploy:docker: before_script: - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} script: - - docker manifest create ${DOCKER_IMAGE}:latest - ${DOCKER_IMAGE}:${DOCKER_TAG}-amd64 - ${DOCKER_IMAGE}:${DOCKER_TAG}-arm64 - ${DOCKER_IMAGE}:${DOCKER_TAG}-armv6 - ${DOCKER_IMAGE}:${DOCKER_TAG}-armv7 - - docker manifest push ${DOCKER_IMAGE}:latest - - docker tag ${DOCKER_IMAGE}/dev:${DOCKER_TAG} ${DOCKER_IMAGE}/dev:latest + - docker tag ${DOCKER_IMAGE}/dev:${DOCKER_TAG} ${DOCKER_IMAGE}/dev:latest - docker push ${DOCKER_IMAGE}/dev:latest tags: - docker needs: - job: deploy:docker +.latest:docker-dev:latest: &deploy_latest_docker_dev + stage: latest + image: docker:20.10 + before_script: + - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} + script: + - docker tag ${DOCKER_IMAGE}/dev:${DOCKER_TAG} ${DOCKER_IMAGE}/dev:latest + - docker push ${DOCKER_IMAGE}/dev:latest + tags: + - docker + needs: + - job: deploy:docker-dev + latest:docker: <<: *deploy_latest_docker only: - "/^v\\d+(\\.\\d+)+$/" # Only on version tags +latest:docker-dev: + <<: *deploy_latest_docker_dev + only: + - "/^v\\d+(\\.\\d+)+$/" # Only on version tags + latest:docker:manual: <<: *deploy_latest_docker when: manual except: - "/^v\\d+(\\.\\d+)+$/" # Only on version tags + +latest:docker-dev:manual: + <<: *deploy_latest_docker_dev + when: manual + except: + - "/^v\\d+(\\.\\d+)+$/" # Only on version tags diff --git a/CMakeLists.txt b/CMakeLists.txt index 9571f9bf7..6eb04c01c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,7 +99,7 @@ endif() # Check programs find_program(PROTOBUFC_COMPILER NAMES protoc-c) find_program(PROTOBUF_COMPILER NAMES protoc) -find_program(GO NAMES go) +find_program(GO NAMES go PATHS /usr/local/go/bin) # Optionally download Go toolchain option(DOWNLOAD_GO "Download Go toolchain" ON) diff --git a/cmake/Go.cmake b/cmake/Go.cmake index 4d8490d6a..f61be0c31 100644 --- a/cmake/Go.cmake +++ b/cmake/Go.cmake @@ -1,45 +1,13 @@ -# determine GOARCH for target -set(GO_TARGET_ARCH_OVERRIDE - "" - CACHE STRING "overrides the 'GOARCH' variable") -if (GO_TARGET_ARCH_OVERRIDE) - set(GO_TARGET_ARCH "${GO_TARGET_ARCH_OVERRIDE}") -elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(GO_TARGET_ARCH "amd64") -elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "i[3-6]86") - set(GO_TARGET_ARCH "386") -elseif (CMAKE_SYSTEM_NAME MATCHES "(ppc64|ppc64le|arm|arm64|s390x)") - set(GO_TARGET_ARCH "${CMAKE_SYSTEM_NAME}") -else () - message(FATAL_ERROR "Unable to auto-determine GOARCH. Please set GO_TARGET_ARCH_OVERRIDE manually.") -endif () - -# determine GOOS for target -set(GO_TARGET_OS_OVERRIDE - "" - CACHE STRING "overrides the 'GOOS' variable") -if (GO_TARGET_OS_OVERRIDE) - set(GO_TARGET_OS "${GO_TARGET_OS_OVERRIDE}") -elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux") - set(GO_TARGET_OS "linux") -elseif (CMAKE_SYSTEM_NAME STREQUAL "Android") - set(GO_TARGET_OS "android") -elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows") - set(GO_TARGET_OS "windows") -elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") - set(GO_TARGET_OS "freebsd") -elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin") - set(GO_TARGET_OS "darwin") -else () - message(FATAL_ERROR "Unable to auto-determine GOOS. Please set GO_TARGET_OS_OVERRIDE manually.") -endif () +set(GO_DOWNLOAD_ARCH "amd64") +set(GO_DOWNLOAD_HASH "980e65a863377e69fd9b67df9d8395fd8e93858e7a24c9f55803421e453f4f99") FetchContent_Declare( go - URL https://go.dev/dl/go1.17.8.${GO_TARGET_OS}-${GO_TARGET_ARCH}.tar.gz + URL https://go.dev/dl/go1.17.8.linux-${GO_DOWNLOAD_ARCH}.tar.gz + URL_HASH SHA256=${GO_DOWNLOAD_HASH} ) -message(STATUS "Downloading Go toolchain for ${GO_TARGET_OS}/${GO_TARGET_ARCH}") +message(STATUS "Downloading Go toolchain for linux/${GO_DOWNLOAD_ARCH}") FetchContent_MakeAvailable(go) find_program(GO diff --git a/cmake/toolchains/debian-arm64.cmake b/cmake/toolchains/debian-arm64.cmake index 368559f8f..b8060f693 100644 --- a/cmake/toolchains/debian-arm64.cmake +++ b/cmake/toolchains/debian-arm64.cmake @@ -12,3 +12,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "Buildroot CXXFLAGS") set(CMAKE_EXE_LINKER_FLAGS " ${CMAKE_EXE_LINKER_FLAGS}" CACHE STRING "Buildroot LDFLAGS") set(CMAKE_LIBRARY_PATH "/usr/lib/${TRIPLET};/usr/local/lib/${TRIPLET}") + +set(GOARCH "arm64") +set(GOARM "8") diff --git a/cmake/toolchains/debian-armhf.cmake b/cmake/toolchains/debian-armhf.cmake index aeb392a44..e153e8216 100644 --- a/cmake/toolchains/debian-armhf.cmake +++ b/cmake/toolchains/debian-armhf.cmake @@ -13,3 +13,5 @@ set(CMAKE_EXE_LINKER_FLAGS " ${CMAKE_EXE_LINKER_FLAGS}" CACHE STRING "Buildroot set(CMAKE_LIBRARY_PATH "/usr/lib/${TRIPLET};/usr/local/lib/${TRIPLET}") +set(GOARCH "arm") +set(GOARM "7") diff --git a/go/lib/CMakeLists.txt b/go/lib/CMakeLists.txt index 8dec21cba..b866a7c70 100644 --- a/go/lib/CMakeLists.txt +++ b/go/lib/CMakeLists.txt @@ -10,7 +10,7 @@ list(FILTER NODE_SRCS EXCLUDE REGEX /_obj/) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${HEADER} DEPENDS ${SRCS} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND env "GOPATH=${GOPATH}" "CGO_ENABLED=1" ${GO} tool cgo -exportheader "${CMAKE_CURRENT_BINARY_DIR}/${HEADER}" -- -I "${CMAKE_CURRENT_SOURCE_DIR}/../../include" ${SRCS} + COMMAND env "GOPATH=${GOPATH}" "CGO_ENABLED=1" "GOARM=${GOARM}" "GOARCH=${GOARCH}" ${GO} tool cgo -exportheader "${CMAKE_CURRENT_BINARY_DIR}/${HEADER}" -- -I "${CMAKE_CURRENT_SOURCE_DIR}/../../include" ${SRCS} COMMENT "Generating CGo header ${HEADER}" COMMAND_EXPAND_LISTS ) @@ -18,7 +18,7 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${HEADER} add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${LIB} DEPENDS ${SRCS} ${NODE_SRCS} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND env "PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig" "GOPATH=${GOPATH}" "CGO_ENABLED=1" "CGO_CFLAGS=-I${CMAKE_CURRENT_SOURCE_DIR}/../../include" ${GO} build -buildmode=c-archive -o "${CMAKE_CURRENT_BINARY_DIR}/${LIB}" ${CMAKE_GO_FLAGS} . + COMMAND env "PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig" "GOPATH=${GOPATH}" "CGO_ENABLED=1" "GOARM=${GOARM}" "GOARCH=${GOARCH}" "CGO_CFLAGS=-I${CMAKE_CURRENT_SOURCE_DIR}/../../include" ${GO} build -buildmode=c-archive -o "${CMAKE_CURRENT_BINARY_DIR}/${LIB}" ${CMAKE_GO_FLAGS} . COMMENT "Building CGo library ${LIB}" COMMAND_EXPAND_LISTS) diff --git a/go/lib/lib.go b/go/lib/lib.go index 1ccbac0ce..f0260cdf5 100644 --- a/go/lib/lib.go +++ b/go/lib/lib.go @@ -152,7 +152,7 @@ func GoNodeRead(p C.uintptr_t, buf *C.char, sz C.int) (C.int, C.int) { } // Create slice which is backed by buf - dst := (*[1 << 31]byte)(unsafe.Pointer(buf))[:sz] + dst := (*[1 << 30]byte)(unsafe.Pointer(buf))[:sz] lsz := copy(dst, src) return C.int(lsz), 0 diff --git a/packaging/docker/Dockerfile.alpine b/packaging/docker/Dockerfile.alpine deleted file mode 100644 index 8fb502244..000000000 --- a/packaging/docker/Dockerfile.alpine +++ /dev/null @@ -1,175 +0,0 @@ -#syntax=docker/dockerfile:1.2-labs -# Alpine Dockerfile -# -# @author Steffen Vogel -# @copyright 2014-2021, Institute for Automation of Complex Power Systems, EONERC -# @license GNU General Public License (version 3) -# -# VILLASnode -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -################################################################################### - - -ARG ALPINE_VERSION=3.13.1 -ARG DISTRO=alpine -ARG ARCH=x86_64 -ARG TRIPLET=x86_64-alpine-linux-musl -ARG PREFIX=/app - -FROM alpine:${ALPINE_VERSION} AS dev - -ARG DISTRO -ARG ARCH -ARG TRIPLET -ARG PREFIX - -# Toolchain -RUN apk update && \ - apk add gcc g++ \ - pkgconf cmake make \ - autoconf automake libtool \ - git \ - flex bison \ - protobuf \ - file - -RUN echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories - -# Dependencies -RUN apk update && \ - apk add \ - openssl-dev \ - ossp-uuid-dev@testing \ - libconfig-dev \ - curl-dev \ - jansson-dev \ - spdlog-dev \ - fmt-dev \ - libnl3-dev \ - graphviz-dev \ - protobuf-dev \ - protobuf-c-dev \ - zeromq-dev \ - rabbitmq-c-dev \ - mosquitto-dev \ - librdkafka-dev \ - libusb-dev \ - lua-dev \ - hiredis-dev - -RUN if [ "${ARCH}" != "armv6" -a "${ARCH}" != "armv7" ]; then \ - apk add \ - nanomsg-dev@testing; \ - fi - -# Some fixes for Alpine -RUN echo -e "#!/bin/sh\n" | \ - tee /usr/bin/udevadm | \ - tee /bin/ldconfig && \ - chmod +x /usr/bin/udevadm /bin/ldconfig && \ - mv /sbin/ldconfig /sbin/ldconfig.orig - -RUN mkdir ${PREFIX} - -# Install unpackaged dependencies from source -ADD packaging/deps.sh / - -# Disabling a few dependencies due to incompatability with musl-libc: -# https://github.com/creytiv/re/issues/256 - -RUN --security=insecure \ - export SKIP_CRITERION=1; \ - export SKIP_ETHERLAB=1; \ - export SKIP_LIBRE=1; \ - if [ "${ARCH}" == "armv6" -o "${ARCH}" == "armv7" ]; then \ - export SKIP_COMEDILIB=1; \ - export SKIP_ULDAQ=1; \ - fi; \ - bash deps.sh && \ - ldconfig.orig /usr/local/lib /usr/lib - -ENV LC_ALL C.UTF-8 -ENV LANG C.UTF-8 - -FROM dev AS builder - -COPY . /villas/ - -RUN mkdir -p /villas/build -WORKDIR /villas/build -RUN --security=insecure \ - cmake -DWITH_OPENMP=OFF \ - -DCMAKE_INSTALL_PREFIX=${PREFIX} \ - -DCMAKE_PREFIX_PATH=${PREFIX} .. && \ - make -j$(nproc) install - -FROM alpine:${ALPINE_VERSION} AS app - -ARG DISTRO -ARG ARCH -ARG TRIPLET -ARG PREFIX - -RUN echo "@testing http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories - -# Build-time dependencies -RUN apk update -RUN apk add \ - bash \ - openssl \ - libconfig \ - curl \ - jansson \ - spdlog \ - fmt \ - libnl3 \ - graphviz \ - protobuf \ - protobuf-c \ - zeromq \ - rabbitmq-c \ - mosquitto \ - librdkafka \ - libusb \ - ossp-uuid@testing \ - lua - -RUN if [ "${ARCH}" != "armv6" -a "${ARCH}" != "armv7" ]; then \ - apk add \ - nanomsg@testing; \ - fi - -COPY --from=builder ${PREFIX} ${PREFIX} -RUN ldconfig ${PREFIX}/lib ${PREFIX}/lib64 - -ENV LD_LIBRARY_PATH=${PREFIX}/lib:${PREFIX}/lib64 -ENV PATH=${PREFIX}/bin:${PATH} - -# Test if it runs -RUN villas node -h 2>&1 > /dev/null - -LABEL \ - org.label-schema.schema-version="1.0" \ - org.label-schema.name="VILLASnode" \ - org.label-schema.license="GPL-3.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="stvogel@eonerc.rwth-aachen.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" - -ENTRYPOINT ["villas"] diff --git a/packaging/docker/Dockerfile.centos b/packaging/docker/Dockerfile.centos deleted file mode 100644 index daf56ccf0..000000000 --- a/packaging/docker/Dockerfile.centos +++ /dev/null @@ -1,120 +0,0 @@ -# CentOS Dockerfile -# -# @author Steffen Vogel -# @copyright 2014-2021, Institute for Automation of Complex Power Systems, EONERC -# @license GNU General Public License (version 3) -# -# VILLASnode -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -################################################################################### - -ARG DISTRO=centos -ARG CENTOS_VERSION=8 -ARG ARCH=x86_64 -ARG TRIPLET=x86_64-linux-gnu - -FROM ${DISTRO}:${CENTOS_VERSION} AS dev - -ARG DISTRO -ARG ARCH -ARG TRIPLET - -USER root - -# CentOS 8 is End-of-Life. We need to use the vault repos -# https://www.centos.org/centos-linux-eol/ -RUN cd /etc/yum.repos.d/ && \ - sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \ - sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \ - dnf update -y - -# 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 powertools - -# Toolchain -RUN dnf -y install \ - gcc gcc-c++ \ - pkgconfig cmake make \ - autoconf automake autogen libtool \ - flex bison \ - texinfo git curl tar \ - protobuf-compiler protobuf-c-compiler - -# 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 - -# 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 - -COPY . /villas/ - -RUN rm -rf /villas/build && mkdir /villas/build -WORKDIR /villas/build -RUN cmake .. && \ - make -j$(nproc) doc && \ - make -j$(nproc) install && \ - ldconfig - -ENTRYPOINT ["villas"] - -LABEL \ - org.label-schema.schema-version="1.0" \ - org.label-schema.name="VILLASnode" \ - org.label-schema.license="GPL-3.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="stvogel@eonerc.rwth-aachen.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" diff --git a/packaging/docker/Dockerfile.debian-multiarch b/packaging/docker/Dockerfile.debian-multiarch index 8f97032f9..b74d3c29b 100644 --- a/packaging/docker/Dockerfile.debian-multiarch +++ b/packaging/docker/Dockerfile.debian-multiarch @@ -124,7 +124,8 @@ COPY . /villas/ RUN rm -rf /villas/build && mkdir /villas/build WORKDIR /villas/build -RUN cmake .. -DWITH_FPGA=OFF ${CMAKE_OPTS} && \ +RUN cmake .. \ + ${CMAKE_OPTS} && \ make -j$(nproc) doc && \ make -j$(nproc) install