cmake/DockerConfig.cmake (180 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. set(PROJECT_VERSION_STR ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) include(ProcessorCount) ProcessorCount(PROCESSOR_COUNT) set(DOCKER_VERIFY_THREADS "${PROCESSOR_COUNT}" CACHE STRING "Number of threads that docker-verify can utilize") # Create a custom build target called "docker" that will invoke DockerBuild.sh and create the NiFi-MiNiFi-CPP Docker image add_custom_target( docker COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -v ${PROJECT_VERSION_STR} -o ${MINIFI_DOCKER_OPTIONS_STR} -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} -c DOCKER_CCACHE_DUMP_LOCATION=${DOCKER_CCACHE_DUMP_LOCATION} -c DOCKER_SKIP_TESTS=${DOCKER_SKIP_TESTS} -c CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -c BUILD_NUMBER=${BUILD_NUMBER} -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) # Create minimal docker image add_custom_target( docker-minimal COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -p minimal -v ${PROJECT_VERSION_STR} -o \"-DENABLE_LIBRDKAFKA=ON -DENABLE_AWS=ON -DENABLE_AZURE=ON -DENABLE_CONTROLLER=ON -DENABLE_PROMETHEUS=ON -DENABLE_MQTT=OFF -DENABLE_ELASTICSEARCH=OFF -DENABLE_LUA_SCRIPTING=OFF -DENABLE_PYTHON_SCRIPTING=OFF -DENABLE_OPC=OFF -DENABLE_ENCRYPT_CONFIG=OFF \" -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} -c DOCKER_SKIP_TESTS=${DOCKER_SKIP_TESTS} -c BUILD_NUMBER=${BUILD_NUMBER} -c CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) add_custom_target( centos COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -v ${PROJECT_VERSION_STR} -o ${MINIFI_DOCKER_OPTIONS_STR} -l ${CMAKE_BINARY_DIR} -d centos -c BUILD_NUMBER=${BUILD_NUMBER} -c DOCKER_CCACHE_DUMP_LOCATION=${DOCKER_CCACHE_DUMP_LOCATION} -c DOCKER_SKIP_TESTS=${DOCKER_SKIP_TESTS} -c CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) add_custom_target( centos-test COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -v ${PROJECT_VERSION_STR} -o ${MINIFI_DOCKER_OPTIONS_STR} -d centos -c BUILD_NUMBER=${BUILD_NUMBER} -c DOCKER_CCACHE_DUMP_LOCATION=${DOCKER_CCACHE_DUMP_LOCATION} -c DOCKER_SKIP_TESTS=OFF -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) add_custom_target( fedora COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -v ${PROJECT_VERSION_STR} -o ${MINIFI_DOCKER_OPTIONS_STR} -l ${CMAKE_BINARY_DIR} -d fedora -c BUILD_NUMBER=${BUILD_NUMBER} -c CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) add_custom_target( u18 COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -v ${PROJECT_VERSION_STR} -o ${MINIFI_DOCKER_OPTIONS_STR} -l ${CMAKE_BINARY_DIR} -d bionic -c BUILD_NUMBER=${BUILD_NUMBER} -c CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) add_custom_target( u20 COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -v ${PROJECT_VERSION_STR} -o ${MINIFI_DOCKER_OPTIONS_STR} -l ${CMAKE_BINARY_DIR} -d focal -c BUILD_NUMBER=${BUILD_NUMBER} -c CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) add_custom_target( rockylinux COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerBuild.sh -u 1000 -g 1000 -v ${PROJECT_VERSION_STR} -o ${MINIFI_DOCKER_OPTIONS_STR} -l ${CMAKE_BINARY_DIR} -d rockylinux -c BUILD_NUMBER=${BUILD_NUMBER} -c DOCKER_CCACHE_DUMP_LOCATION=${DOCKER_CCACHE_DUMP_LOCATION} -c DOCKER_SKIP_TESTS=${DOCKER_SKIP_TESTS} -c CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -c DOCKER_PLATFORMS=${DOCKER_PLATFORMS} -c DOCKER_PUSH=${DOCKER_PUSH} -c DOCKER_TAGS=${DOCKER_TAGS} -c DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docker/) if (EXISTS ${CMAKE_SOURCE_DIR}/docker/test/integration/features) set(ENABLED_TAGS "CORE") foreach(MINIFI_OPTION ${MINIFI_OPTIONS}) string(FIND ${MINIFI_OPTION} "ENABLE" my_index) if(my_index EQUAL -1) continue() elseif(${${MINIFI_OPTION}}) set(ENABLED_TAGS "${ENABLED_TAGS},${MINIFI_OPTION}") endif() endforeach() set(DISABLED_TAGS "SKIP_CI,NEEDS_NUMPY") add_custom_target( docker-verify COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerVerify.sh ${PROJECT_VERSION_STR} ${ENABLED_TAGS} --tags_to_exclude=${DISABLED_TAGS} --parallel_processes=${DOCKER_VERIFY_THREADS}) endif() include(VerifyPythonCompatibility)