diff --git a/.github/workflows/container_maintenance.yml b/.github/workflows/container_maintenance.yml
index df29db37e67..142363cbe1a 100644
--- a/.github/workflows/container_maintenance.yml
+++ b/.github/workflows/container_maintenance.yml
@@ -272,6 +272,6 @@ jobs:
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- repository: gdcc/base
+ repository: gdcc/configbaker
short-description: "Dataverse Config Baker Container Image providing setup tooling and more"
readme-filepath: ./modules/container-configbaker/README.md
diff --git a/.github/workflows/scripts/containers/maintain-application.sh b/.github/workflows/scripts/containers/maintain-application.sh
index b68c2a53d96..e34c609b0ad 100755
--- a/.github/workflows/scripts/containers/maintain-application.sh
+++ b/.github/workflows/scripts/containers/maintain-application.sh
@@ -126,15 +126,15 @@ for BRANCH in "$@"; do
# 6. Let's put together what tags we want added to this build run
TAG_OPTIONS=""
if ! (( IS_DEV )); then
- TAG_OPTIONS="-Dapp.image=$APP_IMAGE_REF -Ddocker.tags.revision=$NEXT_REV_TAG"
+ TAG_OPTIONS="-Dapp.image=$APP_IMAGE_REF -Dapp.image.tag.1=$NEXT_REV_TAG"
# In case of the current release, add the "latest" tag as well.
if (( IS_CURRENT_RELEASE )); then
- TAG_OPTIONS="$TAG_OPTIONS -Ddocker.tags.latest=latest"
+ TAG_OPTIONS="$TAG_OPTIONS -Dapp.image.tag.2=latest"
fi
else
# shellcheck disable=SC2016
UPCOMING_TAG=$( mvn initialize help:evaluate -Pct -f . -Dexpression=app.image.tag -Dapp.image.tag='${app.image.version}-${base.image.flavor}' -q -DforceStdout )
- TAG_OPTIONS="-Ddocker.tags.upcoming=$UPCOMING_TAG"
+ TAG_OPTIONS="-Dapp.image.tag.1=$UPCOMING_TAG"
# For the dev branch we only have rolling tags and can add them now already
SUPPORTED_ROLLING_TAGS+=("[\"unstable\", \"$UPCOMING_TAG\"]")
@@ -148,9 +148,8 @@ for BRANCH in "$@"; do
# Build the application image, but skip the configbaker image (that's a different job)!
# shellcheck disable=SC2046
mvn -Pct -f . deploy -Ddocker.noCache -Ddocker.platforms="${PLATFORMS}" \
- -Dconf.skipBuild -Dbase.image="${BASE_IMAGE_REF}" \
- -Ddocker.imagePropertyConfiguration=override $TAG_OPTIONS \
- $( if (( DAMP_RUN )); then echo "-Ddocker.skip.push -Ddocker.skip.tag"; fi )
+ -Dconf.skipBuild -Dbase.image="${BASE_IMAGE_REF}" $TAG_OPTIONS \
+ $( if (( DAMP_RUN )); then echo "-Ddocker.skip.push"; fi )
else
echo "Skipping Maven build as requested by DRY_RUN=1"
fi
diff --git a/.github/workflows/scripts/containers/maintain-base.sh b/.github/workflows/scripts/containers/maintain-base.sh
index 5b9ae738b98..ace76d7f3cd 100755
--- a/.github/workflows/scripts/containers/maintain-base.sh
+++ b/.github/workflows/scripts/containers/maintain-base.sh
@@ -120,6 +120,13 @@ for BRANCH in "$@"; do
CURRENT_REV_TAG="${BASE_IMAGE_REF#*:}-r$REV"
NEXT_REV_TAG="${BASE_IMAGE_REF#*:}-r$(( REV + 1 ))"
+ # 6a. Determine if we must newly release an "r0" because a rolling tag from development is now released.
+ IS_NEW_RELEASE=0
+ if ! (( IS_DEV )) && [ "$REV" = "-1" ]; then
+ echo "This is a newly released version of Dataverse - forcing build, as no r0 image is present on Docker Hub"
+ IS_NEW_RELEASE=1
+ fi
+
# 7. Let's put together what tags we want added to this build run
TAG_OPTIONS=""
if ! (( IS_DEV )); then
@@ -139,12 +146,12 @@ for BRANCH in "$@"; do
# 8. Let's build the base image if necessary
NEWER_IMAGE=0
- if (( NEWER_JAVA_IMAGE + NEWER_PKGS + FORCE_BUILD > 0 )); then
+ if (( NEWER_JAVA_IMAGE + NEWER_PKGS + IS_NEW_RELEASE + FORCE_BUILD > 0 )); then
if ! (( DRY_RUN )); then
# shellcheck disable=SC2046
mvn -Pct -f modules/container-base deploy -Ddocker.noCache -Ddocker.platforms="${PLATFORMS}" \
-Ddocker.imagePropertyConfiguration=override $TAG_OPTIONS \
- $( if (( DAMP_RUN )); then echo "-Ddocker.skip.push -Ddocker.skip.tag"; fi )
+ $( if (( DAMP_RUN )); then echo "-Ddocker.skip.push"; fi )
else
echo "Skipping Maven build as requested by DRY_RUN=1"
fi
diff --git a/.github/workflows/scripts/containers/maintain-configbaker.sh b/.github/workflows/scripts/containers/maintain-configbaker.sh
index 0b5b60b459c..2cd89efaeb6 100755
--- a/.github/workflows/scripts/containers/maintain-configbaker.sh
+++ b/.github/workflows/scripts/containers/maintain-configbaker.sh
@@ -122,15 +122,15 @@ for BRANCH in "$@"; do
# 6. Let's put together what tags we want added to this build run
TAG_OPTIONS=""
if ! (( IS_DEV )); then
- TAG_OPTIONS="-Dconf.image=$CONFIG_IMAGE_REF -Ddocker.tags.revision=$NEXT_REV_TAG"
+ TAG_OPTIONS="-Dconf.image=$CONFIG_IMAGE_REF -Dconf.image.tag.1=$NEXT_REV_TAG"
# In case of the current release, add the "latest" tag as well.
if (( IS_CURRENT_RELEASE )); then
- TAG_OPTIONS="$TAG_OPTIONS -Ddocker.tags.latest=latest"
+ TAG_OPTIONS="$TAG_OPTIONS -Dconf.image.tag.2=latest"
fi
else
# shellcheck disable=SC2016
UPCOMING_TAG=$( mvn initialize help:evaluate -Pct -f . -Dexpression=conf.image.tag -Dconf.image.tag='${app.image.version}-${conf.image.flavor}' -q -DforceStdout )
- TAG_OPTIONS="-Ddocker.tags.upcoming=$UPCOMING_TAG"
+ TAG_OPTIONS="-Dconf.image.tag.1=$UPCOMING_TAG"
# For the dev branch we only have rolling tags and can add them now already
SUPPORTED_ROLLING_TAGS+=("[\"unstable\", \"$UPCOMING_TAG\"]")
@@ -145,9 +145,8 @@ for BRANCH in "$@"; do
# shellcheck disable=SC2046
mvn -Pct -f . deploy -Ddocker.noCache -Ddocker.platforms="${PLATFORMS}" \
-Dapp.skipBuild -Dconf.image.base="${BASE_IMAGE_REF}" \
- -Dmaven.main.skip -Dmaven.test.skip -Dmaven.war.skip \
- -Ddocker.imagePropertyConfiguration=override $TAG_OPTIONS \
- $( if (( DAMP_RUN )); then echo "-Ddocker.skip.push -Ddocker.skip.tag"; fi )
+ -Dmaven.main.skip -Dmaven.test.skip -Dmaven.war.skip $TAG_OPTIONS \
+ $( if (( DAMP_RUN )); then echo "-Ddocker.skip.push"; fi )
else
echo "Skipping Maven build as requested by DRY_RUN=1"
fi
diff --git a/pom.xml b/pom.xml
index 0f4633fe8c6..ceb5ea28d84 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1128,6 +1128,9 @@
Note: During maintenance we will use the app.image.version setting from the DV parent POM.
-->
unstable
+
+
+
false
false
@@ -1142,6 +1145,9 @@
gdcc/configbaker:${conf.image.tag}
${app.image.tag}
+
+
+
noble
ubuntu:${conf.image.flavor}
false
@@ -1200,6 +1206,10 @@
${app.image.version}
+
+ ${app.image.tag.1}
+ ${app.image.tag.2}
+
@
assembly.xml
@@ -1235,6 +1245,10 @@
${app.image.version}
+
+ ${conf.image.tag.1}
+ ${conf.image.tag.2}
+
@
${project.basedir}/modules/container-configbaker/assembly.xml
diff --git a/src/backports/v6.6/002-pom.xml.patch b/src/backports/v6.6/002-pom.xml.patch
index 9d1edeba1c7..a65880a2ed1 100644
--- a/src/backports/v6.6/002-pom.xml.patch
+++ b/src/backports/v6.6/002-pom.xml.patch
@@ -1,11 +1,21 @@
---- a/pom.xml (revision 906f874f9fd56241c41e6c2c2f6989c4406f5909)
-+++ b/pom.xml (date 1746655334773)
-@@ -997,14 +997,18 @@
+--- a/pom.xml
++++ b/pom.xml
+@@ -1069,18 +1069,38 @@
+ 17
gdcc/dataverse:${app.image.tag}
++
unstable
++
++
++
+ false
false
++
gdcc/base:${base.image.tag}
noble
@@ -14,13 +24,43 @@
+ ${base.image.version}-${base.image.flavor}${base.image.tag.suffix}
+
+ -p${payara.version}-j${target.java.version}
++
gdcc/configbaker:${conf.image.tag}
++
${app.image.tag}
+-
++
++
++
++ alpine
++ alpine:3.18
+ false
-
++
-
-@@ -1046,6 +1050,9 @@
+-
++
+
+ ${app.image}
+ ${postgresql.server.version}
+@@ -1088,7 +1108,7 @@
+ dataverse
+ ${app.skipDeploy}
+
+-
++
+
+
+
+@@ -1106,7 +1126,7 @@
+
+
+
+-
++
+
+
+ io.fabric8
+@@ -1119,6 +1139,9 @@
dev_dataverse
${app.image}
@@ -30,7 +70,34 @@
${docker.platforms}
-@@ -1075,6 +1082,9 @@
+@@ -1128,26 +1151,33 @@
+
+ ${base.image}
+
++
++ ${app.image.tag.1}
++ ${app.image.tag.2}
++
+ @
+
+ assembly.xml
+
+
+-
++
+
+
+-
++
+
+ compose
+ ${project.basedir}
+ docker-compose-dev.yml
+
+
+-
++
+
dev_bootstrap
${conf.image}
@@ -40,3 +107,24 @@
${docker.platforms}
+@@ -1155,14 +1185,19 @@
+
+ ${project.basedir}/modules/container-configbaker/Dockerfile
+
++ ${conf.image.base}
+ ${SOLR_VERSION}
+
++
++ ${conf.image.tag.1}
++ ${conf.image.tag.2}
++
+ @
+
+ ${project.basedir}/modules/container-configbaker/assembly.xml
+
+
+-
++
+
+ unstable
++
++
++
+ false
+ false
+
+@@ -1133,6 +1136,9 @@
+ gdcc/configbaker:${conf.image.tag}
+
+ ${app.image.tag}
++
++
++
+ noble
+ ubuntu:${conf.image.flavor}
+ false
+@@ -1191,6 +1197,10 @@
+
+ ${app.image.version}
+
++
++ ${app.image.tag.1}
++ ${app.image.tag.2}
++
+ @
+
+ assembly.xml
+@@ -1226,6 +1236,10 @@
+
+ ${app.image.version}
+
++
++ ${conf.image.tag.1}
++ ${conf.image.tag.2}
++
+ @
+
+ ${project.basedir}/modules/container-configbaker/assembly.xml
diff --git a/src/backports/v6.7/001-pom.xml.patch b/src/backports/v6.7/001-pom.xml.patch
new file mode 100644
index 00000000000..1b2001d5546
--- /dev/null
+++ b/src/backports/v6.7/001-pom.xml.patch
@@ -0,0 +1,44 @@
+--- a/pom.xml
++++ b/pom.xml
+@@ -1119,6 +1119,9 @@
+ Note: During maintenance we will use the app.image.version setting from the DV parent POM.
+ -->
+ unstable
++
++
++
+ false
+ false
+
+@@ -1133,6 +1136,9 @@
+ gdcc/configbaker:${conf.image.tag}
+
+ ${app.image.tag}
++
++
++
+ noble
+ ubuntu:${conf.image.flavor}
+ false
+@@ -1191,6 +1197,10 @@
+
+ ${app.image.version}
+
++
++ ${app.image.tag.1}
++ ${app.image.tag.2}
++
+ @
+
+ assembly.xml
+@@ -1226,6 +1236,10 @@
+
+ ${app.image.version}
+
++
++ ${conf.image.tag.1}
++ ${conf.image.tag.2}
++
+ @
+
+ ${project.basedir}/modules/container-configbaker/assembly.xml
diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile
index beb1de53cd5..e6dbb2f8679 100644
--- a/src/main/docker/Dockerfile
+++ b/src/main/docker/Dockerfile
@@ -46,8 +46,9 @@ RUN ln -s "${DEPLOY_DIR}/dataverse/supplements/jhove.conf" "${PAYARA_DIR}/glassf
ln -s "${DEPLOY_DIR}/dataverse/supplements/jhoveConfig.xsd" "${PAYARA_DIR}/glassfish/domains/${DOMAIN_NAME}/config/jhoveConfig.xsd" && \
sed -i "${PAYARA_DIR}/glassfish/domains/${DOMAIN_NAME}/config/jhove.conf" -e "s:/usr/local/payara./glassfish/domains/domain1:${PAYARA_DIR}/glassfish/domains/${DOMAIN_NAME}:g"
-# Workaround for fabric8io/docker-maven-plugin#1865
+# Workaround for fabric8io/docker-maven-plugin#1865 (both arg lines)
ARG APP_IMAGE_VERSION
+ARG BASE_IMAGE
LABEL org.opencontainers.image.created="@git.build.time@" \
org.opencontainers.image.authors="Research Data Management at FZJ " \
org.opencontainers.image.url="https://guides.dataverse.org/en/latest/container/" \