diff --git a/assembly/pom.xml b/assembly/pom.xml index e4a9922b4dc..e4923b33e2a 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -703,5 +703,107 @@ + + docker + + + + io.fabric8 + docker-maven-plugin + ${docker-maven-plugin-version} + + + + apache/activemq:${project.version} + + ${project.basedir}/src/docker/Dockerfile + ${project.basedir}/src/docker + + ${docker-java-version} + _TMP_/apache-activemq.tar.gz + + + _TMP_ + + + + ${project.build.directory}/apache-activemq-${project.version}-bin.tar.gz + apache-activemq.tar.gz + . + + + + + + + + + + + docker-build + package + + build + + + + + + + + + docker-deploy + + + + io.fabric8 + docker-maven-plugin + ${docker-maven-plugin-version} + + + + apache/activemq:${project.version} + + ${project.basedir}/src/docker/Dockerfile + ${project.basedir}/src/docker + + + linux/amd64 + linux/arm64 + + + + ${docker-java-version} + _TMP_/apache-activemq.tar.gz + + + _TMP_ + + + + ${project.build.directory}/apache-activemq-${project.version}-bin.tar.gz + apache-activemq.tar.gz + . + + + + + + + + + + + docker-deploy + package + + build + + + + + + + diff --git a/assembly/src/docker/Dockerfile b/assembly/src/docker/Dockerfile index c6b917a443c..26d12066995 100644 --- a/assembly/src/docker/Dockerfile +++ b/assembly/src/docker/Dockerfile @@ -16,7 +16,8 @@ # limitations under the License. ################################################################################ -FROM eclipse-temurin:17-jre +ARG java_version=17 +FROM eclipse-temurin:${java_version}-jre # ActiveMQ environment variables ENV ACTIVEMQ_INSTALL_PATH /opt diff --git a/assembly/src/docker/build.sh b/assembly/src/docker/build.sh deleted file mode 100755 index a16dc0e7397..00000000000 --- a/assembly/src/docker/build.sh +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/sh - -################################################################################ -# 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. -################################################################################ - -usage() { - cat <] [--image-name ] [--build-multi-platform ] - build.sh --from-release --activemq-version [--image-name ] [--build-multi-platform ] - build.sh --help - - If the --image-name flag is not used the built image name will be 'activemq'. - Check the supported build platforms; you can verify with this command: docker buildx ls - The supported platforms (OS/Arch) depend on the build's base image, in this case [eclipse-temurin:17-jre](https://hub.docker.com/_/eclipse-temurin). - -HERE - exit 1 -} - -while [ $# -ge 1 ] -do -key="$1" - case $key in - --from-local-dist) - FROM_LOCAL="true" - ;; - --from-release) - FROM_RELEASE="true" - ;; - --image-name) - IMAGE_NAME="$2" - shift - ;; - --archive) - ARCHIVE="$2" - shift - ;; - --activemq-version) - ACTIVEMQ_VERSION="$2" - shift - ;; - --build-multi-platform) - BUILD_MULTI_PLATFORM="$2" - shift - ;; - --help) - usage - ;; - *) - # unknown option - ;; - esac - shift -done - -IMAGE_NAME=${IMAGE_NAME:-activemq} - -# TMPDIR must be contained within the working directory so it is part of the -# Docker context. (i.e. it can't be mktemp'd in /tmp) -TMPDIR=_TMP_ - -cleanup() { - rm -rf "${TMPDIR}" -} -trap cleanup EXIT - -mkdir -p "${TMPDIR}" - -if [ -n "${FROM_RELEASE}" ]; then - - [ -n "${ACTIVEMQ_VERSION}" ] || usage - - ACTIVEMQ_BASE_URL="https://dlcdn.apache.org/activemq/${ACTIVEMQ_VERSION}/" - ACTIVEMQ_DIST_FILE_NAME="apache-activemq-${ACTIVEMQ_VERSION}-bin.tar.gz" - CURL_OUTPUT="${TMPDIR}/${ACTIVEMQ_DIST_FILE_NAME}" - - echo "Downloading ${ACTIVEMQ_DIST_FILE_NAME} from ${ACTIVEMQ_BASE_URL}" - curl -s "${ACTIVEMQ_BASE_URL}${ACTIVEMQ_DIST_FILE_NAME}" --output "${CURL_OUTPUT}" - - ACTIVEMQ_DIST="${CURL_OUTPUT}" - -elif [ -n "${FROM_LOCAL}" ]; then - - if [ -n "${ARCHIVE}" ]; then - DIST_DIR=${ARCHIVE} - else - DIST_DIR="target/apache-activemq-*.tar.gz" - fi - ACTIVEMQ_DIST=${TMPDIR}/apache-activemq.tar.gz - echo "Using ActiveMQ dist: ${DIST_DIR}" - cp ${DIST_DIR} ${ACTIVEMQ_DIST} - -else - - usage - -fi - -if [ -n "${BUILD_MULTI_PLATFORM}" ]; then - echo "Checking if buildx installed..." - VERSION_BUILD_X=$(docker buildx version) > /dev/null 2>&1 - - if [ $? -eq 0 ]; then - echo "Found buildx {${VERSION_BUILD_X}} on your docker system" - echo "Starting build of the docker image for the platform ${BUILD_MULTI_PLATFORM}" - - BUILD_X="buildx" - BUILD_X_FLAG="--push" - BUILD_X_PLATFORM="--platform ${BUILD_MULTI_PLATFORM}" - else - echo "Error: buildx not installed with your docker system" - exit 2 - fi - -fi - -docker ${BUILD_X} build ${BUILD_X_PLATFORM} --build-arg activemq_dist="${ACTIVEMQ_DIST}" ${BUILD_X_FLAG} -t "${IMAGE_NAME}" . diff --git a/pom.xml b/pom.xml index 61751cb668e..a21d37d1af9 100644 --- a/pom.xml +++ b/pom.xml @@ -133,6 +133,8 @@ 5.5.0.6356 1.4 1.5.0 + 0.45.1 + 17 3.9.0 1.45 3.9.12