Use multi-stage build to avoid caching snapshot download
parent
9158bc61c7
commit
236339ad82
5
BUILD.md
5
BUILD.md
|
|
@ -65,10 +65,9 @@ Override these arguments to make use of build.geoserver.org nightly releases:
|
||||||
* ``--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/${GS_VERSION}/ext-latest/``
|
* ``--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/${GS_VERSION}/ext-latest/``
|
||||||
* ``--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/${GS_VERSION}/community-latest/``
|
* ``--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/${GS_VERSION}/community-latest/``
|
||||||
|
|
||||||
|
|
||||||
Here is a working example for building 2.23.x nightly build::
|
Here is a working example for building 2.23.x nightly build::
|
||||||
```
|
```
|
||||||
docker build \
|
docker build --no-cache-filter download,install \
|
||||||
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/2.23.x/geoserver-2.23.x-latest-war.zip \
|
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/2.23.x/geoserver-2.23.x-latest-war.zip \
|
||||||
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/2.23.x/ext-latest/ \
|
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/2.23.x/ext-latest/ \
|
||||||
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/2.23.x/community-latest/ \
|
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/2.23.x/community-latest/ \
|
||||||
|
|
@ -100,7 +99,7 @@ The build.geoserver.org output for the ``main`` branch requires the following:
|
||||||
Here is a working example for building main branch as 2.24.x build:
|
Here is a working example for building main branch as 2.24.x build:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker build \
|
docker build --no-cache-filter download,install \
|
||||||
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/main/geoserver-main-latest-war.zip \
|
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/main/geoserver-main-latest-war.zip \
|
||||||
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/main/ext-latest/ \
|
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/main/ext-latest/ \
|
||||||
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/main/community-latest/ \
|
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/main/community-latest/ \
|
||||||
|
|
|
||||||
124
Dockerfile
124
Dockerfile
|
|
@ -1,42 +1,19 @@
|
||||||
FROM ubuntu:22.04
|
FROM ubuntu:22.04 as tomcat
|
||||||
|
|
||||||
# The GS_VERSION argument could be used like this to overwrite the default:
|
ARG TOMCAT_VERSION=9.0.75
|
||||||
# docker build --build-arg GS_VERSION=2.23.0 -t geoserver:2.23.0 .
|
|
||||||
ARG TOMCAT_VERSION=9.0.74
|
|
||||||
ARG GS_VERSION=2.23.0
|
|
||||||
ARG GS_DATA_PATH=./geoserver_data/
|
|
||||||
ARG ADDITIONAL_LIBS_PATH=./additional_libs/
|
|
||||||
ARG ADDITIONAL_FONTS_PATH=./additional_fonts/
|
|
||||||
ARG CORS_ENABLED=false
|
ARG CORS_ENABLED=false
|
||||||
ARG CORS_ALLOWED_ORIGINS=*
|
ARG CORS_ALLOWED_ORIGINS=*
|
||||||
ARG CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,HEAD,OPTIONS
|
ARG CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,HEAD,OPTIONS
|
||||||
ARG CORS_ALLOWED_HEADERS=*
|
ARG CORS_ALLOWED_HEADERS=*
|
||||||
ARG WAR_ZIP_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/geoserver-${GS_VERSION}-war.zip
|
|
||||||
ARG STABLE_PLUGIN_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/extensions
|
|
||||||
ARG COMMUNITY_PLUGIN_URL=''
|
|
||||||
|
|
||||||
# Environment variables
|
# Environment variables
|
||||||
ENV CATALINA_HOME=/opt/apache-tomcat-${TOMCAT_VERSION}
|
ENV CATALINA_HOME=/opt/apache-tomcat-${TOMCAT_VERSION}
|
||||||
ENV GEOSERVER_VERSION=$GS_VERSION
|
|
||||||
ENV GEOSERVER_DATA_DIR=/opt/geoserver_data/
|
|
||||||
ENV GEOSERVER_REQUIRE_FILE=$GEOSERVER_DATA_DIR/global.xml
|
|
||||||
ENV GEOSERVER_LIB_DIR=$CATALINA_HOME/webapps/geoserver/WEB-INF/lib/
|
|
||||||
ENV EXTRA_JAVA_OPTS="-Xms256m -Xmx1g"
|
ENV EXTRA_JAVA_OPTS="-Xms256m -Xmx1g"
|
||||||
ENV CORS_ENABLED=$CORS_ENABLED
|
ENV CORS_ENABLED=$CORS_ENABLED
|
||||||
ENV CORS_ALLOWED_ORIGINS=$CORS_ALLOWED_ORIGINS
|
ENV CORS_ALLOWED_ORIGINS=$CORS_ALLOWED_ORIGINS
|
||||||
ENV CORS_ALLOWED_METHODS=$CORS_ALLOWED_METHODS
|
ENV CORS_ALLOWED_METHODS=$CORS_ALLOWED_METHODS
|
||||||
ENV CORS_ALLOWED_HEADERS=$CORS_ALLOWED_HEADERS
|
ENV CORS_ALLOWED_HEADERS=$CORS_ALLOWED_HEADERS
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
ENV INSTALL_EXTENSIONS=false
|
|
||||||
ENV WAR_ZIP_URL=$WAR_ZIP_URL
|
|
||||||
ENV STABLE_EXTENSIONS=''
|
|
||||||
ENV STABLE_PLUGIN_URL=$STABLE_PLUGIN_URL
|
|
||||||
ENV COMMUNITY_EXTENSIONS=''
|
|
||||||
ENV COMMUNITY_PLUGIN_URL=$COMMUNITY_PLUGIN_URL
|
|
||||||
ENV ADDITIONAL_LIBS_DIR=/opt/additional_libs/
|
|
||||||
ENV ADDITIONAL_FONTS_DIR=/opt/additional_fonts/
|
|
||||||
ENV SKIP_DEMO_DATA=false
|
|
||||||
ENV ROOT_WEBAPP_REDIRECT=false
|
|
||||||
|
|
||||||
# see https://docs.geoserver.org/stable/en/user/production/container.html
|
# see https://docs.geoserver.org/stable/en/user/production/container.html
|
||||||
ENV CATALINA_OPTS="\$EXTRA_JAVA_OPTS \
|
ENV CATALINA_OPTS="\$EXTRA_JAVA_OPTS \
|
||||||
|
|
@ -50,40 +27,99 @@ ENV CATALINA_OPTS="\$EXTRA_JAVA_OPTS \
|
||||||
-Dorg.geotools.coverage.jaiext.enabled=true"
|
-Dorg.geotools.coverage.jaiext.enabled=true"
|
||||||
|
|
||||||
# init
|
# init
|
||||||
RUN apt update && \
|
RUN <<EOF
|
||||||
apt -y upgrade && \
|
set -e
|
||||||
apt install -y --no-install-recommends openssl unzip gdal-bin wget curl openjdk-11-jdk && \
|
apt update
|
||||||
apt clean && \
|
apt -y upgrade
|
||||||
rm -rf /var/cache/apt/* && \
|
apt install -y --no-install-recommends openssl unzip gdal-bin wget curl openjdk-11-jdk
|
||||||
|
apt clean
|
||||||
|
rm -rf /var/cache/apt/*
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
EOF
|
||||||
|
|
||||||
WORKDIR /opt/
|
WORKDIR /opt/
|
||||||
RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz && \
|
|
||||||
tar xf apache-tomcat-${TOMCAT_VERSION}.tar.gz && \
|
RUN <<EOF
|
||||||
rm apache-tomcat-${TOMCAT_VERSION}.tar.gz && \
|
set -e
|
||||||
rm -rf /opt/apache-tomcat-${TOMCAT_VERSION}/webapps/ROOT && \
|
wget -q https://archive.apache.org/dist/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz
|
||||||
rm -rf /opt/apache-tomcat-${TOMCAT_VERSION}/webapps/docs && \
|
tar xf apache-tomcat-${TOMCAT_VERSION}.tar.gz
|
||||||
|
rm apache-tomcat-${TOMCAT_VERSION}.tar.gz
|
||||||
|
rm -rf /opt/apache-tomcat-${TOMCAT_VERSION}/webapps/ROOT
|
||||||
|
rm -rf /opt/apache-tomcat-${TOMCAT_VERSION}/webapps/docs
|
||||||
rm -rf /opt/apache-tomcat-${TOMCAT_VERSION}/webapps/examples
|
rm -rf /opt/apache-tomcat-${TOMCAT_VERSION}/webapps/examples
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# cleanup
|
||||||
|
RUN <<EOF
|
||||||
|
set -e
|
||||||
|
apt purge -y && \
|
||||||
|
apt autoremove --purge -y && \
|
||||||
|
rm -rf /tmp/*
|
||||||
|
EOF
|
||||||
|
|
||||||
|
FROM tomcat as download
|
||||||
|
|
||||||
|
ARG GS_VERSION=2.23.1
|
||||||
|
ARG GS_BUILD=''
|
||||||
|
ARG WAR_ZIP_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/geoserver-${GS_VERSION}-war.zip
|
||||||
|
ENV GEOSERVER_VERSION=$GS_VERSION
|
||||||
|
ENV GEOSERVER_BUILD=$GS_BUILD
|
||||||
|
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
set -e
|
||||||
|
echo "Downloading GeoServer ${GEOSERVER_VERSION} ${GEOSERVER_BUILD}"
|
||||||
|
wget -q -O /tmp/geoserver.zip $WAR_ZIP_URL
|
||||||
|
unzip geoserver.zip geoserver.war -d /tmp/
|
||||||
|
unzip -q /tmp/geoserver.war -d /tmp/geoserver
|
||||||
|
rm /tmp/geoserver.war
|
||||||
|
EOF
|
||||||
|
|
||||||
|
FROM tomcat as install
|
||||||
|
|
||||||
|
ARG GS_VERSION=2.23.1
|
||||||
|
ARG GS_BUILD=''
|
||||||
|
ARG STABLE_PLUGIN_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/extensions
|
||||||
|
ARG COMMUNITY_PLUGIN_URL=''
|
||||||
|
|
||||||
|
ARG GS_DATA_PATH=./geoserver_data/
|
||||||
|
ARG ADDITIONAL_LIBS_PATH=./additional_libs/
|
||||||
|
ARG ADDITIONAL_FONTS_PATH=./additional_fonts/
|
||||||
|
|
||||||
|
ENV GEOSERVER_VERSION=$GS_VERSION
|
||||||
|
ENV GEOSERVER_BUILD=$GS_BUILD
|
||||||
|
ENV GEOSERVER_DATA_DIR=/opt/geoserver_data/
|
||||||
|
ENV GEOSERVER_REQUIRE_FILE=$GEOSERVER_DATA_DIR/global.xml
|
||||||
|
ENV GEOSERVER_LIB_DIR=$CATALINA_HOME/webapps/geoserver/WEB-INF/lib/
|
||||||
|
ENV INSTALL_EXTENSIONS=false
|
||||||
|
ENV WAR_ZIP_URL=$WAR_ZIP_URL
|
||||||
|
ENV STABLE_EXTENSIONS=''
|
||||||
|
ENV STABLE_PLUGIN_URL=$STABLE_PLUGIN_URL
|
||||||
|
ENV COMMUNITY_EXTENSIONS=''
|
||||||
|
ENV COMMUNITY_PLUGIN_URL=$COMMUNITY_PLUGIN_URL
|
||||||
|
ENV ADDITIONAL_LIBS_DIR=/opt/additional_libs/
|
||||||
|
ENV ADDITIONAL_FONTS_DIR=/opt/additional_fonts/
|
||||||
|
ENV SKIP_DEMO_DATA=false
|
||||||
|
ENV ROOT_WEBAPP_REDIRECT=false
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
# install geoserver
|
# install geoserver
|
||||||
RUN wget -q -O /tmp/geoserver.zip $WAR_ZIP_URL && \
|
COPY --from=download /tmp/geoserver $CATALINA_HOME/webapps/geoserver
|
||||||
unzip geoserver.zip geoserver.war -d $CATALINA_HOME/webapps && \
|
|
||||||
mkdir -p $CATALINA_HOME/webapps/geoserver && \
|
RUN <<EOF
|
||||||
unzip -q $CATALINA_HOME/webapps/geoserver.war -d $CATALINA_HOME/webapps/geoserver && \
|
set -e
|
||||||
rm $CATALINA_HOME/webapps/geoserver.war && \
|
mv $CATALINA_HOME/webapps/geoserver/WEB-INF/lib/marlin-*.jar $CATALINA_HOME/lib/marlin.jar
|
||||||
mv $CATALINA_HOME/webapps/geoserver/WEB-INF/lib/marlin-0.9.3.jar $CATALINA_HOME/lib/marlin.jar && \
|
|
||||||
mkdir -p $GEOSERVER_DATA_DIR
|
mkdir -p $GEOSERVER_DATA_DIR
|
||||||
|
EOF
|
||||||
|
|
||||||
COPY $GS_DATA_PATH $GEOSERVER_DATA_DIR
|
COPY $GS_DATA_PATH $GEOSERVER_DATA_DIR
|
||||||
COPY $ADDITIONAL_LIBS_PATH $GEOSERVER_LIB_DIR
|
COPY $ADDITIONAL_LIBS_PATH $GEOSERVER_LIB_DIR
|
||||||
COPY $ADDITIONAL_FONTS_PATH /usr/share/fonts/truetype/
|
COPY $ADDITIONAL_FONTS_PATH /usr/share/fonts/truetype/
|
||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
RUN apt purge -y && \
|
RUN rm -rf /tmp/*
|
||||||
apt autoremove --purge -y && \
|
|
||||||
rm -rf /tmp/*
|
|
||||||
|
|
||||||
# copy scripts
|
# copy scripts
|
||||||
COPY *.sh /opt/
|
COPY *.sh /opt/
|
||||||
|
|
|
||||||
16
README.md
16
README.md
|
|
@ -18,19 +18,19 @@ This README.md file covers use of official docker image, additional [build](BULD
|
||||||
To pull an official image use ``docker.osgeo.org/geoserver:{{VERSION}}``, e.g.:
|
To pull an official image use ``docker.osgeo.org/geoserver:{{VERSION}}``, e.g.:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker pull docker.osgeo.org/geoserver:2.23.0
|
docker pull docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Afterwards you can run the pulled image locally with:
|
Afterwards you can run the pulled image locally with:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run -it -p 80:8080 docker.osgeo.org/geoserver:2.23.0
|
docker run -it -p 80:8080 docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Or if you want to start the container daemonized, use e.g.:
|
Or if you want to start the container daemonized, use e.g.:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run -d -p 80:8080 docker.osgeo.org/geoserver:2.23.0
|
docker run -d -p 80:8080 docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Check <http://localhost/geoserver> to see the geoserver page,
|
Check <http://localhost/geoserver> to see the geoserver page,
|
||||||
|
|
@ -47,7 +47,7 @@ To use an external folder as your geoserver data directory.
|
||||||
```shell
|
```shell
|
||||||
docker run -it -p 80:8080 \
|
docker run -it -p 80:8080 \
|
||||||
--mount src="/absolute/path/on/host",target=/opt/geoserver_data/,type=bind \
|
--mount src="/absolute/path/on/host",target=/opt/geoserver_data/,type=bind \
|
||||||
docker.osgeo.org/geoserver:2.23.0
|
docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
An empty data directory will be populated on first use. You can easily update GeoServer while
|
An empty data directory will be populated on first use. You can easily update GeoServer while
|
||||||
|
|
@ -62,7 +62,7 @@ The environment variable `SKIP_DEMO_DATA` can be set to `true` to create an empt
|
||||||
```shell
|
```shell
|
||||||
docker run -it -p 80:8080 \
|
docker run -it -p 80:8080 \
|
||||||
--env SKIP_DEMO_DATA=true \
|
--env SKIP_DEMO_DATA=true \
|
||||||
docker.osgeo.org/geoserver:2.23.0
|
docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
## How to issue a redirect from the root ("/") to GeoServer web interface ("/geoserver/web")?
|
## How to issue a redirect from the root ("/") to GeoServer web interface ("/geoserver/web")?
|
||||||
|
|
@ -83,7 +83,7 @@ Example installing wps and ysld extensions:
|
||||||
```shell
|
```shell
|
||||||
docker run -it -p 80:8080 \
|
docker run -it -p 80:8080 \
|
||||||
--env INSTALL_EXTENSIONS=true --env STABLE_EXTENSIONS="wps,ysld" \
|
--env INSTALL_EXTENSIONS=true --env STABLE_EXTENSIONS="wps,ysld" \
|
||||||
docker.osgeo.org/geoserver:2.23.0
|
docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
The list of extensions (taken from SourceForge download page):
|
The list of extensions (taken from SourceForge download page):
|
||||||
|
|
@ -108,7 +108,7 @@ If you want to add geoserver extensions/libs, place the respective jar files in
|
||||||
```shell
|
```shell
|
||||||
docker run -it -p 80:8080 \
|
docker run -it -p 80:8080 \
|
||||||
--mount src="/dir/with/libs/on/host",target=/opt/additional_libs,type=bind \
|
--mount src="/dir/with/libs/on/host",target=/opt/additional_libs,type=bind \
|
||||||
docker.osgeo.org/geoserver:2.23.0
|
docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
## How to add additional fonts to the docker image (e.g. for SLD styling)?
|
## How to add additional fonts to the docker image (e.g. for SLD styling)?
|
||||||
|
|
@ -118,7 +118,7 @@ If you want to add custom fonts (the base image only contains 26 fonts) by using
|
||||||
```shell
|
```shell
|
||||||
docker run -it -p 80:8080 \
|
docker run -it -p 80:8080 \
|
||||||
--mount src="/dir/with/fonts/on/host",target=/opt/additional_fonts,type=bind \
|
--mount src="/dir/with/fonts/on/host",target=/opt/additional_fonts,type=bind \
|
||||||
docker.osgeo.org/geoserver:2.23.0
|
docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:** Do not change the target value!
|
**Note:** Do not change the target value!
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ OSGeo maintains geoserver-docker.osgeo.org repository for publishing. The result
|
||||||
Build locally:
|
Build locally:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker build -t geoserver-docker.osgeo.org/geoserver:2.22.0 .
|
docker build -t geoserver-docker.osgeo.org/geoserver:2.23.1 .
|
||||||
```
|
```
|
||||||
|
|
||||||
Login using with osgeo user id:
|
Login using with osgeo user id:
|
||||||
|
|
@ -19,7 +19,7 @@ docker login geoserver-docker.osgeo.org
|
||||||
Push to osgeo repository:
|
Push to osgeo repository:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker push geoserver-docker.osgeo.org/geoserver:2.22.0
|
docker push geoserver-docker.osgeo.org/geoserver:2.23.1
|
||||||
```
|
```
|
||||||
|
|
||||||
## How to automate release?
|
## How to automate release?
|
||||||
|
|
@ -34,7 +34,7 @@ Examples:
|
||||||
|
|
||||||
`./release.sh 2.22.1 build`
|
`./release.sh 2.22.1 build`
|
||||||
|
|
||||||
`./release.sh 2.22.0 publish`
|
`./release.sh 2.23.1 publish`
|
||||||
|
|
||||||
`./release.sh 2.22.1 buildandpublish`
|
`./release.sh 2.22.1 buildandpublish`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,19 +3,28 @@
|
||||||
# error out if any statements fail
|
# error out if any statements fail
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
MAIN="2.24"
|
||||||
|
|
||||||
function usage() {
|
function usage() {
|
||||||
echo "$0 [options] <version>"
|
echo "$0 <mode> <version> [<build>]"
|
||||||
echo " version : The released version to build an docker image for (eg: 2.23.1, 2.24-SNAPSHOT)"
|
echo ""
|
||||||
echo " mode : The mode. Choose one of 'build', 'publish' or 'buildandpublish'"
|
echo " mode : The mode. Choose one of 'build', 'publish' or 'buildandpublish'"
|
||||||
|
echo " version : The released version to build an docker image for (eg: 2.23.1, ${MAIN}-SNAPSHOT)"
|
||||||
|
echo " build : Build number (optional)"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ -z $1 ] || [ -z $2 ] || [[ $2 != "build" && $2 != "publish" && $2 != "buildandpublish" ]]; then
|
if [ -z $1 ] || [ -z $2 ] || [[ $1 != "build" && $1 != "publish" && $1 != "buildandpublish" ]]; then
|
||||||
usage
|
usage
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VERSION=$1
|
VERSION=$2
|
||||||
MAIN="2.24"
|
if [ -z $3 ]; then
|
||||||
|
BUILD=$3
|
||||||
|
else
|
||||||
|
BUILD=''
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${VERSION:0:4}" == "$MAIN" ]]; then
|
if [[ "${VERSION:0:4}" == "$MAIN" ]]; then
|
||||||
# main branch snapshot release
|
# main branch snapshot release
|
||||||
BRANCH=main
|
BRANCH=main
|
||||||
|
|
@ -36,35 +45,40 @@ echo "Release from branch $BRANCH GeoServer $VERSION as $TAG"
|
||||||
# Go up one level to the Dockerfile
|
# Go up one level to the Dockerfile
|
||||||
cd ".."
|
cd ".."
|
||||||
|
|
||||||
if [[ $2 == *build* ]]; then
|
if [[ $1 == *build* ]]; then
|
||||||
echo "Building GeoServer Docker Image..."
|
echo "Building GeoServer Docker Image..."
|
||||||
if [[ "$VERSION" == *"-SNAPSHOT"* ]]; then
|
if [[ "$VERSION" == *"-SNAPSHOT"* ]]; then
|
||||||
echo " nightly build from https://build.geoserver.org/geoserver/$BRANCH"
|
echo " nightly build from https://build.geoserver.org/geoserver/$BRANCH"
|
||||||
echo
|
echo
|
||||||
if [[ "$BRANCH" == "main" ]]; then
|
if [[ "$BRANCH" == "main" ]]; then
|
||||||
echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ."
|
echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ."
|
||||||
docker build \
|
docker build --no-cache-filter download,install \
|
||||||
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/main/geoserver-main-latest-war.zip \
|
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/main/geoserver-main-latest-war.zip \
|
||||||
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/main/ext-latest/ \
|
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/main/ext-latest/ \
|
||||||
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/main/community-latest/ \
|
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/main/community-latest/ \
|
||||||
--build-arg GS_VERSION=$VERSION \
|
--build-arg GS_VERSION=$VERSION \
|
||||||
|
--build-arg GS_BUILD=$BUILD \
|
||||||
-t $TAG .
|
-t $TAG .
|
||||||
else
|
else
|
||||||
echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ."
|
echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ."
|
||||||
docker build \
|
docker build --no-cache-filter download,install \
|
||||||
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/$BRANCH/geoserver-$BRANCH-latest-war.zip \
|
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/$BRANCH/geoserver-$BRANCH-latest-war.zip \
|
||||||
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/$BRANCH/ext-latest/ \
|
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/$BRANCH/ext-latest/ \
|
||||||
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/$BRANCH/community-latest/ \
|
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/$BRANCH/community-latest/ \
|
||||||
--build-arg GS_VERSION=$VERSION \
|
--build-arg GS_VERSION=$VERSION \
|
||||||
|
--build-arg GS_BUILD=$BUILD \
|
||||||
-t $TAG .
|
-t $TAG .
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ."
|
echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ."
|
||||||
docker build --build-arg GS_VERSION=$VERSION -t $TAG .
|
docker build \
|
||||||
|
--build-arg GS_VERSION=$VERSION \
|
||||||
|
--build-arg GS_BUILD=$BUILD \
|
||||||
|
-t $TAG .
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $2 == *"publish"* ]]; then
|
if [[ $1 == *"publish"* ]]; then
|
||||||
echo "Publishing GeoServer Docker Image..."
|
echo "Publishing GeoServer Docker Image..."
|
||||||
echo $DOCKERPASSWORD | docker login -u $DOCKERUSER --password-stdin geoserver-docker.osgeo.org
|
echo $DOCKERPASSWORD | docker login -u $DOCKERUSER --password-stdin geoserver-docker.osgeo.org
|
||||||
echo "docker push $TAG"
|
echo "docker push $TAG"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue