diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml
index f29b3d025..e8f6ab5fc 100644
--- a/.github/workflows/build-and-push.yaml
+++ b/.github/workflows/build-and-push.yaml
@@ -6,12 +6,14 @@ on:
branches:
- main
- "release/**"
+ - "docker-gdal"
paths:
- "Makefile"
- "pom.xml"
- ".github/workflows/build-and-push.yaml"
- "config"
- "src/**"
+ - "docker-build/**"
tags:
- '*'
@@ -20,7 +22,7 @@ jobs:
if: github.repository == 'geoserver/geoserver-cloud'
name: Build and Push
runs-on: ubuntu-latest
- timeout-minutes: 60
+ timeout-minutes: 120
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
@@ -35,7 +37,6 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- # https://github.com/docker/setup-buildx-action
with:
platforms: linux/amd64,linux/arm64
# Sets up docker build command as an alias to docker buildx
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 7c38397f5..73a589e86 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -4,8 +4,9 @@ name: Build on any branch
on:
push:
branches:
- - '**'
- - "!main"
+ - "feature/**"
+ - "bug/**"
+ - "build/**"
paths:
- "Makefile"
- "pom.xml"
diff --git a/docker-build/base-images-multiplatform.yml b/docker-build/base-images-multiplatform.yml
index 58d728caa..65314e160 100644
--- a/docker-build/base-images-multiplatform.yml
+++ b/docker-build/base-images-multiplatform.yml
@@ -1,26 +1,55 @@
services:
- base-image-jre:
+ # Base JRE image, ubuntu 24.04, jre 21 temurin
+ jre:
extends:
file: templates.yml
service: multi-platform
- image: ${REPOSITORY}/gs-cloud-base-jre:${TAG}
+ image: ${REPOSITORY}/jre:21-tem
build:
context: ../src/apps/base-images/jre/
- base-image-spring-boot:
+ # Base JRE image with libgdal-java
+ jre-gdal:
extends:
file: templates.yml
service: multi-platform
- image: ${REPOSITORY}/gs-cloud-base-spring-boot:${TAG}
- depends_on: [base-image-jre]
+ image: ${REPOSITORY}/jre-gdal:21-3.8.4
+ depends_on: [jre]
+ build:
+ context: ../src/apps/base-images/gdal/
+ args:
+ JRE_BASE_IMAGE_NAME: jre:21-tem
+
+ # Base JRE + Spring Boot common layer for infra services
+ spring-boot-common:
+ extends:
+ file: templates.yml
+ service: multi-platform
+ image: ${REPOSITORY}/spring-boot-common:${TAG}
+ depends_on: [jre]
+ build:
+ context: ../src/apps/base-images/spring-boot/
+ args:
+ JRE_BASE_IMAGE_NAME: jre:21-tem
+
+ # Base JRE + GDAL + Spring Boot common layer for GeoServer services
+ spring-boot-common-gdal:
+ extends:
+ file: templates.yml
+ service: multi-platform
+ image: ${REPOSITORY}/spring-boot-common-gdal:${TAG}
+ depends_on: [jre-gdal]
build:
context: ../src/apps/base-images/spring-boot/
+ args:
+ JRE_BASE_IMAGE_NAME: jre-gdal:21-3.8.4
- base-image-geoserver:
+ # Base JRE + GDAL + Spring Boot + shared GeoServer dependencies layer for GeoServer services
+ geoserver-common:
extends:
file: templates.yml
service: multi-platform
- image: ${REPOSITORY}/gs-cloud-base-geoserver-image:${TAG}
- depends_on: [base-image-spring-boot]
+ image: ${REPOSITORY}/geoserver-common:${TAG}
+ depends_on: [spring-boot-common-gdal]
build:
context: ../src/apps/base-images/geoserver/
diff --git a/docker-build/base-images.yml b/docker-build/base-images.yml
index bf51d8a90..37a0d43cb 100644
--- a/docker-build/base-images.yml
+++ b/docker-build/base-images.yml
@@ -1,26 +1,55 @@
services:
- base-image-jre:
+ # Base JRE image, ubuntu 24.04, jre 21 temurin
+ jre:
extends:
file: templates.yml
service: current-platform
- image: ${REPOSITORY}/gs-cloud-base-jre:${TAG}
+ image: ${REPOSITORY}/jre:21-tem
build:
context: ../src/apps/base-images/jre/
- base-image-spring-boot:
+ # Base JRE image with libgdal-java
+ jre-gdal:
extends:
file: templates.yml
service: current-platform
- image: ${REPOSITORY}/gs-cloud-base-spring-boot:${TAG}
- depends_on: [base-image-jre]
+ image: ${REPOSITORY}/jre-gdal:21-3.8.4
+ depends_on: [jre]
+ build:
+ context: ../src/apps/base-images/gdal/
+ args:
+ JRE_BASE_IMAGE_NAME: jre:21-tem
+
+ # Base JRE + Spring Boot common layer for infra services
+ spring-boot-common:
+ extends:
+ file: templates.yml
+ service: current-platform
+ image: ${REPOSITORY}/spring-boot-common:${TAG}
+ depends_on: [jre]
+ build:
+ context: ../src/apps/base-images/spring-boot/
+ args:
+ JRE_BASE_IMAGE_NAME: jre:21-tem
+
+ # Base JRE + GDAL + Spring Boot common layer for GeoServer services
+ spring-boot-common-gdal:
+ extends:
+ file: templates.yml
+ service: current-platform
+ image: ${REPOSITORY}/spring-boot-common-gdal:${TAG}
+ depends_on: [jre-gdal]
build:
context: ../src/apps/base-images/spring-boot/
+ args:
+ JRE_BASE_IMAGE_NAME: jre-gdal:21-3.8.4
- base-image-geoserver:
+ # Base JRE + GDAL + Spring Boot + shared GeoServer dependencies layer for GeoServer services
+ geoserver-common:
extends:
file: templates.yml
service: current-platform
- image: ${REPOSITORY}/gs-cloud-base-geoserver-image:${TAG}
- depends_on: [base-image-spring-boot]
+ image: ${REPOSITORY}/geoserver-common:${TAG}
+ depends_on: [spring-boot-common-gdal]
build:
context: ../src/apps/base-images/geoserver/
diff --git a/docker-build/templates.yml b/docker-build/templates.yml
index f3a42495a..9ab57d6ce 100644
--- a/docker-build/templates.yml
+++ b/docker-build/templates.yml
@@ -2,7 +2,7 @@ services:
current-platform:
build:
no_cache: true
- pull: true
+ #pull: true
context: override-me
args:
TAG: ${TAG}
@@ -11,7 +11,7 @@ services:
multi-platform:
build:
no_cache: true
- pull: true
+ #pull: true
context: override-me
platforms:
- linux/amd64
diff --git a/src/apps/base-images/gdal/Dockerfile b/src/apps/base-images/gdal/Dockerfile
new file mode 100644
index 000000000..85e38db46
--- /dev/null
+++ b/src/apps/base-images/gdal/Dockerfile
@@ -0,0 +1,46 @@
+ARG REPOSITORY=geoservercloud
+ARG JRE_BASE_IMAGE_NAME=jre:21-tem
+ARG TAG=latest
+
+# Build with java 11
+FROM eclipse-temurin:11-jdk as builder
+
+ENV GDAL_VERSION 3.8.4
+ENV GDAL_PATH /usr/share/gdal
+ENV GDAL_DATA $GDAL_PATH/3.8.4
+ENV PATH $GDAL_PATH:$PATH
+ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/lib/jni:/usr/share/java:/usr/local/lib/:/usr/lib/
+
+#
+# GDAL INSTALLATION
+#
+# Manual compilation - https://stackoverflow.com/questions/76913667/unable-to-locate-package-libgdal-java
+RUN apt update && apt-get install -y wget build-essential libuv1-dev g++ libstdc++6 make linux-headers-generic \
+ libssl-dev swig zlib1g-dev proj-bin proj-data libproj-dev sqlite3 libsqlite3-dev \
+ libtiff-dev libcurl4-openssl-dev cmake libcrypto++-dev ant libeccodes-dev libnetcdf-dev
+# Install GDAL
+RUN wget https://download.osgeo.org/gdal/${GDAL_VERSION}/gdal-${GDAL_VERSION}.tar.gz -O /tmp/gdal.tar.gz && \
+ tar xzf /tmp/gdal.tar.gz -C /tmp && \
+ cd /tmp/gdal-${GDAL_VERSION} && \
+ sed -i 's/source="7"/source="8"/' /tmp/gdal-${GDAL_VERSION}/swig/java/build.xml && \
+ sed -i 's/target="7"/target="8"/' /tmp/gdal-${GDAL_VERSION}/swig/java/build.xml
+RUN cd /tmp/gdal-${GDAL_VERSION} && mkdir build && cd build && cmake .. && cmake --build . && cmake --build . --target install
+
+RUN mkdir /tmp/gdal-java
+RUN cp /tmp/gdal-3.8.4/build/swig/java/gdal.jar /tmp/gdal-java/gdal.jar
+RUN cp /tmp/gdal-3.8.4/build/swig/java/libgdalalljni.so /tmp/gdal-java/libgdalalljni.so
+
+##########
+FROM $REPOSITORY/$JRE_BASE_IMAGE_NAME
+
+ENV GDAL_PATH /usr/share/gdal
+ENV GDAL_DATA $GDAL_PATH
+ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:$GDAL_PATH/lib:/usr/local/lib/:/usr/lib/
+
+# see https://docs.docker.com/build/cache/optimize/#use-cache-mounts
+RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
+ --mount=type=cache,target=/var/lib/apt,sharing=locked \
+ apt update && apt-get --no-install-recommends install -y gdal-bin \
+ && mkdir $GDAL_PATH/lib
+
+COPY --from=builder /tmp/gdal-java/* $GDAL_PATH/lib/
diff --git a/src/apps/base-images/gdal/pom.xml b/src/apps/base-images/gdal/pom.xml
new file mode 100644
index 000000000..d2ee3828b
--- /dev/null
+++ b/src/apps/base-images/gdal/pom.xml
@@ -0,0 +1,24 @@
+
+
+ 4.0.0
+
+ org.geoserver.cloud.apps
+ gs-cloud-base-images
+ ${revision}
+
+ gs-cloud-base-jre-gdal
+ jar
+ Base GDAL image
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+ true
+
+
+
+
+
diff --git a/src/apps/base-images/geoserver/Dockerfile b/src/apps/base-images/geoserver/Dockerfile
index be7c14730..3b463bf3f 100644
--- a/src/apps/base-images/geoserver/Dockerfile
+++ b/src/apps/base-images/geoserver/Dockerfile
@@ -1,7 +1,8 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG AS builder
+FROM eclipse-temurin:21-jre-noble AS builder
+
ARG JAR_FILE=target/gs-cloud-*-bin.jar
RUN apt update && apt install -y --no-install-recommends unzip
@@ -15,7 +16,7 @@ RUN java -Djarmode=layertools -jar application.jar extract
# rm /tmp/YourKit-JavaProfiler-2023.9-docker.zip
##########
-FROM $REPOSITORY/gs-cloud-base-spring-boot:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# init
RUN apt update \
diff --git a/src/apps/base-images/jre/Dockerfile b/src/apps/base-images/jre/Dockerfile
index 8eeedd1d1..870d00c6b 100644
--- a/src/apps/base-images/jre/Dockerfile
+++ b/src/apps/base-images/jre/Dockerfile
@@ -1,4 +1,5 @@
-FROM eclipse-temurin:21-jre
+# JRE 21 on Ubuntu 24.04
+FROM eclipse-temurin:21-jre-noble
LABEL maintainer="GeoServer PSC "
diff --git a/src/apps/base-images/spring-boot/Dockerfile b/src/apps/base-images/spring-boot/Dockerfile
index dba590c12..2b76dd784 100644
--- a/src/apps/base-images/spring-boot/Dockerfile
+++ b/src/apps/base-images/spring-boot/Dockerfile
@@ -1,7 +1,8 @@
ARG REPOSITORY=geoservercloud
+ARG JRE_BASE_IMAGE_NAME=jre:21-tem
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG AS builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +11,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG
+FROM $REPOSITORY/$JRE_BASE_IMAGE_NAME
COPY target/config/ /etc/geoserver/
@@ -18,18 +19,6 @@ RUN mkdir -p /opt/app/bin
WORKDIR /opt/app/bin
-ENV JAVA_TOOL_OPTS="\
---add-exports=java.desktop/sun.awt.image=ALL-UNNAMED \
---add-opens=java.base/java.lang=ALL-UNNAMED \
---add-opens=java.base/java.util=ALL-UNNAMED \
---add-opens=java.base/java.lang.reflect=ALL-UNNAMED \
---add-opens=java.base/java.text=ALL-UNNAMED \
---add-opens=java.desktop/java.awt.font=ALL-UNNAMED \
---add-opens=java.desktop/sun.awt.image=ALL-UNNAMED \
---add-opens=java.naming/com.sun.jndi.ldap=ALL-UNNAMED \
--Djava.awt.headless=true"
-
-ENV JAVA_OPTS=
EXPOSE 8080
EXPOSE 8081
@@ -44,4 +33,4 @@ HEALTHCHECK \
--retries=5 \
CMD curl -f -s -o /dev/null localhost:8081/actuator/health || exit 1
-CMD exec env USER_ID="$(id -u)" USER_GID="$(id -g)" java $JAVA_OPTS $JAVA_TOOL_OPTS org.springframework.boot.loader.JarLauncher
+CMD exec env USER_ID="$(id -u)" USER_GID="$(id -g)" java $JAVA_OPTS org.springframework.boot.loader.JarLauncher
diff --git a/src/apps/geoserver/gwc/Dockerfile b/src/apps/geoserver/gwc/Dockerfile
index 851d7cbb6..cd8027887 100644
--- a/src/apps/geoserver/gwc/Dockerfile
+++ b/src/apps/geoserver/gwc/Dockerfile
@@ -1,7 +1,7 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG as builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-geoserver-image:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/geoserver/restconfig/Dockerfile b/src/apps/geoserver/restconfig/Dockerfile
index 851d7cbb6..cd8027887 100644
--- a/src/apps/geoserver/restconfig/Dockerfile
+++ b/src/apps/geoserver/restconfig/Dockerfile
@@ -1,7 +1,7 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG as builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-geoserver-image:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/geoserver/wcs/Dockerfile b/src/apps/geoserver/wcs/Dockerfile
index 851d7cbb6..cd8027887 100644
--- a/src/apps/geoserver/wcs/Dockerfile
+++ b/src/apps/geoserver/wcs/Dockerfile
@@ -1,7 +1,7 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG as builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-geoserver-image:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/geoserver/webui/Dockerfile b/src/apps/geoserver/webui/Dockerfile
index 851d7cbb6..cd8027887 100644
--- a/src/apps/geoserver/webui/Dockerfile
+++ b/src/apps/geoserver/webui/Dockerfile
@@ -1,7 +1,7 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG as builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-geoserver-image:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/geoserver/wfs/Dockerfile b/src/apps/geoserver/wfs/Dockerfile
index 851d7cbb6..cd8027887 100644
--- a/src/apps/geoserver/wfs/Dockerfile
+++ b/src/apps/geoserver/wfs/Dockerfile
@@ -1,7 +1,7 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG as builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-geoserver-image:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/geoserver/wms/Dockerfile b/src/apps/geoserver/wms/Dockerfile
index 851d7cbb6..cd8027887 100644
--- a/src/apps/geoserver/wms/Dockerfile
+++ b/src/apps/geoserver/wms/Dockerfile
@@ -1,7 +1,7 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG as builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-geoserver-image:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/geoserver/wps/Dockerfile b/src/apps/geoserver/wps/Dockerfile
index 851d7cbb6..cd8027887 100644
--- a/src/apps/geoserver/wps/Dockerfile
+++ b/src/apps/geoserver/wps/Dockerfile
@@ -1,7 +1,7 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG as builder
+FROM eclipse-temurin:21-jre-noble AS builder
ARG JAR_FILE=target/gs-cloud-*-bin.jar
@@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-geoserver-image:$TAG
+FROM $REPOSITORY/spring-boot-common-gdal:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/infrastructure/admin/Dockerfile b/src/apps/infrastructure/admin/Dockerfile
index 2e6762f69..6e34893e2 100644
--- a/src/apps/infrastructure/admin/Dockerfile
+++ b/src/apps/infrastructure/admin/Dockerfile
@@ -1,7 +1,8 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG AS builder
+FROM eclipse-temurin:21-jre-noble AS builder
+
ARG JAR_FILE=target/gs-cloud-*-bin.jar
COPY ${JAR_FILE} application.jar
@@ -9,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-spring-boot:$TAG
+FROM $REPOSITORY/spring-boot-common:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/infrastructure/config/Dockerfile b/src/apps/infrastructure/config/Dockerfile
index 0c1a0e3fb..8a1935871 100644
--- a/src/apps/infrastructure/config/Dockerfile
+++ b/src/apps/infrastructure/config/Dockerfile
@@ -1,7 +1,8 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG AS builder
+FROM eclipse-temurin:21-jre-noble AS builder
+
ARG JAR_FILE=target/gs-cloud-*-bin.jar
COPY ${JAR_FILE} application.jar
@@ -9,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-spring-boot:$TAG
+FROM $REPOSITORY/spring-boot-common:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/infrastructure/discovery/Dockerfile b/src/apps/infrastructure/discovery/Dockerfile
index d16b5892c..ecc3c1b48 100644
--- a/src/apps/infrastructure/discovery/Dockerfile
+++ b/src/apps/infrastructure/discovery/Dockerfile
@@ -1,7 +1,8 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG AS builder
+FROM eclipse-temurin:21-jre-noble AS builder
+
ARG JAR_FILE=target/gs-cloud-*-bin.jar
COPY ${JAR_FILE} application.jar
@@ -9,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-spring-boot:$TAG
+FROM $REPOSITORY/spring-boot-common:$TAG
# WORKDIR already set to /opt/app/bin
diff --git a/src/apps/infrastructure/gateway/Dockerfile b/src/apps/infrastructure/gateway/Dockerfile
index d16b5892c..ecc3c1b48 100644
--- a/src/apps/infrastructure/gateway/Dockerfile
+++ b/src/apps/infrastructure/gateway/Dockerfile
@@ -1,7 +1,8 @@
ARG REPOSITORY=geoservercloud
ARG TAG=latest
-FROM $REPOSITORY/gs-cloud-base-jre:$TAG AS builder
+FROM eclipse-temurin:21-jre-noble AS builder
+
ARG JAR_FILE=target/gs-cloud-*-bin.jar
COPY ${JAR_FILE} application.jar
@@ -9,7 +10,7 @@ COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
##########
-FROM $REPOSITORY/gs-cloud-base-spring-boot:$TAG
+FROM $REPOSITORY/spring-boot-common:$TAG
# WORKDIR already set to /opt/app/bin