aligned with latest improvements from our docker images
parent
1018a2e8ae
commit
76b6b7e40c
21
Dockerfile
21
Dockerfile
|
|
@ -1,7 +1,7 @@
|
||||||
FROM tomcat:9-jdk11-openjdk as mother
|
FROM tomcat:9-jdk11-openjdk as mother
|
||||||
LABEL maintainer="Alessandro Parma<alessandro.parma@geo-solutions.it>"
|
LABEL maintainer="Alessandro Parma<alessandro.parma@geo-solutions.it>"
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y unzip
|
RUN apt-get update && apt-get install -y unzip wget
|
||||||
|
|
||||||
# accepts local files and URLs. Tar(s) are automatically extracted
|
# accepts local files and URLs. Tar(s) are automatically extracted
|
||||||
WORKDIR /output/datadir
|
WORKDIR /output/datadir
|
||||||
|
|
@ -13,6 +13,15 @@ WORKDIR /output/webapp
|
||||||
ARG GEOSERVER_WEBAPP_SRC="./.placeholder"
|
ARG GEOSERVER_WEBAPP_SRC="./.placeholder"
|
||||||
ADD "${GEOSERVER_WEBAPP_SRC}" "./"
|
ADD "${GEOSERVER_WEBAPP_SRC}" "./"
|
||||||
|
|
||||||
|
# download and install libjpeg-2.0.6 from sources.
|
||||||
|
RUN wget https://nav.dl.sourceforge.net/project/libjpeg-turbo/2.0.6/libjpeg-turbo-2.0.6.tar.gz \
|
||||||
|
&& tar -zxf ./libjpeg-turbo-2.0.6.tar.gz \
|
||||||
|
&& cd libjpeg-turbo-2.0.6 && apt-get install cmake -yq && cmake -G"Unix Makefiles" && make deb \
|
||||||
|
&& dpkg -i ./libjpeg*.deb && apt-get -f install \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& apt-get autoclean \
|
||||||
|
&& apt-get autoremove
|
||||||
|
|
||||||
# zip files require explicit extracion
|
# zip files require explicit extracion
|
||||||
RUN \
|
RUN \
|
||||||
if [ "${GEOSERVER_WEBAPP_SRC##*.}" = "zip" ]; then \
|
if [ "${GEOSERVER_WEBAPP_SRC##*.}" = "zip" ]; then \
|
||||||
|
|
@ -21,15 +30,9 @@ RUN \
|
||||||
fi \
|
fi \
|
||||||
&& [ -d "./geoserver" ] || (mkdir -p ./geoserver && unzip ./geoserver.war -d ./geoserver && rm ./geoserver.war)
|
&& [ -d "./geoserver" ] || (mkdir -p ./geoserver && unzip ./geoserver.war -d ./geoserver && rm ./geoserver.war)
|
||||||
|
|
||||||
RUN apt-get update; apt-get upgrade --yes; apt-get install wget --yes
|
|
||||||
|
|
||||||
WORKDIR /output/plugins
|
WORKDIR /output/plugins
|
||||||
ARG PLUG_IN_URLS=""
|
ARG PLUG_IN_URLS=""
|
||||||
ADD .placeholder ${PLUG_IN_URLS} /output/plugins/
|
ADD .placeholder ${PLUG_IN_URLS} /output/plugins/
|
||||||
# RUN \
|
|
||||||
# if [ "$(echo ${PLUG_IN_URLS}| grep http)" != "" ]; then \
|
|
||||||
# for URL in "${PLUG_IN_URLS}"; do wget $URL;done; unzip -o "./*zip"; rm -f ./*zip; \
|
|
||||||
# fi
|
|
||||||
RUN unzip -o "./*.zip";rm -f ./*zip
|
RUN unzip -o "./*.zip";rm -f ./*zip
|
||||||
|
|
||||||
WORKDIR /output/webapp
|
WORKDIR /output/webapp
|
||||||
|
|
@ -56,11 +59,12 @@ ENV GRIB_CACHE_DIR="${GEOSERVER_HOME}/grib_cache_dir"
|
||||||
# override at run time as needed JAVA_OPTS
|
# override at run time as needed JAVA_OPTS
|
||||||
ENV INITIAL_MEMORY="2G"
|
ENV INITIAL_MEMORY="2G"
|
||||||
ENV MAXIMUM_MEMORY="4G"
|
ENV MAXIMUM_MEMORY="4G"
|
||||||
|
ENV LD_LIBRARY_PATH="/opt/libjpeg-turbo/lib64"
|
||||||
ENV JAIEXT_ENABLED="true"
|
ENV JAIEXT_ENABLED="true"
|
||||||
|
|
||||||
ENV GEOSERVER_OPTS=" \
|
ENV GEOSERVER_OPTS=" \
|
||||||
-Dorg.geotools.coverage.jaiext.enabled=${JAIEXT_ENABLED} \
|
-Dorg.geotools.coverage.jaiext.enabled=${JAIEXT_ENABLED} \
|
||||||
-Duser.timezone=GMT \
|
-Duser.timezone=UTC \
|
||||||
-Dorg.geotools.shapefile.datetime=true \
|
-Dorg.geotools.shapefile.datetime=true \
|
||||||
-DGEOSERVER_LOG_LOCATION=${GEOSERVER_LOG_LOCATION} \
|
-DGEOSERVER_LOG_LOCATION=${GEOSERVER_LOG_LOCATION} \
|
||||||
-DGEOWEBCACHE_CONFIG_DIR=${GEOWEBCACHE_CONFIG_DIR} \
|
-DGEOWEBCACHE_CONFIG_DIR=${GEOWEBCACHE_CONFIG_DIR} \
|
||||||
|
|
@ -98,6 +102,7 @@ RUN apt-get update \
|
||||||
|
|
||||||
# copy from mother
|
# copy from mother
|
||||||
|
|
||||||
|
COPY --from=mother "/opt/libjpeg-turbo" "/opt/libjpeg-turbo"
|
||||||
COPY --from=mother "/output/datadir" "${GEOSERVER_DATA_DIR}"
|
COPY --from=mother "/output/datadir" "${GEOSERVER_DATA_DIR}"
|
||||||
COPY --from=mother "/output/webapp/geoserver" "${CATALINA_BASE}/webapps/geoserver"
|
COPY --from=mother "/output/webapp/geoserver" "${CATALINA_BASE}/webapps/geoserver"
|
||||||
COPY --from=mother "/output/plugins" "${CATALINA_BASE}/webapps/geoserver/WEB-INF/lib"
|
COPY --from=mother "/output/plugins" "${CATALINA_BASE}/webapps/geoserver/WEB-INF/lib"
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ docker stop gs
|
||||||
start GeoServer with data persistence on saved datadir:
|
start GeoServer with data persistence on saved datadir:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -v ./datadir:/var/geoserver/datadir --name gs -p 8080:8080 geosolutionsit/geoserver`
|
docker run -v ./datadir:/var/geoserver/datadir --name gs -p 8080:8080 geosolutionsit/geoserver
|
||||||
```
|
```
|
||||||
|
|
||||||
Open your browser and point it to `http://localhost:8080/geoserver` .
|
Open your browser and point it to `http://localhost:8080/geoserver` .
|
||||||
|
|
|
||||||
127
custom_build.sh
127
custom_build.sh
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/bash -x
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
TAG=${1}
|
TAG=${1}
|
||||||
|
|
@ -9,38 +9,43 @@ readonly PULL=${5}
|
||||||
readonly ALL_PARAMETERS=$*
|
readonly ALL_PARAMETERS=$*
|
||||||
readonly BASE_BUILD_URL="https://build.geoserver.org/geoserver"
|
readonly BASE_BUILD_URL="https://build.geoserver.org/geoserver"
|
||||||
readonly BASE_BUILD_URL_STABLE="https://netcologne.dl.sourceforge.net/project/geoserver/GeoServer"
|
readonly BASE_BUILD_URL_STABLE="https://netcologne.dl.sourceforge.net/project/geoserver/GeoServer"
|
||||||
|
#readonly BASE_BUILD_URL_STABLE="https://build.geoserver.org/geoserver"
|
||||||
readonly EXTRA_FONTS_URL="https://www.dropbox.com/s/hs5743lwf1rktws/fonts.tar.gz?dl=1"
|
readonly EXTRA_FONTS_URL="https://www.dropbox.com/s/hs5743lwf1rktws/fonts.tar.gz?dl=1"
|
||||||
|
readonly MARLIN_VERSION=0.9.2
|
||||||
readonly ARTIFACT_DIRECTORY=./resources
|
readonly ARTIFACT_DIRECTORY=./resources
|
||||||
readonly GEOSERVER_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/geoserver/
|
readonly GEOSERVER_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/geoserver/
|
||||||
readonly DATADIR_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/geoserver-datadir/
|
readonly DATADIR_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/geoserver-datadir/
|
||||||
readonly PLUGIN_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/geoserver-plugins
|
readonly PLUGIN_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/geoserver-plugins
|
||||||
readonly FONTS_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/fonts/
|
readonly FONTS_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/fonts/
|
||||||
|
readonly MARLIN_ARTIFACT_DIRECTORY=${ARTIFACT_DIRECTORY}/marlin/
|
||||||
|
|
||||||
function help(){
|
function help(){
|
||||||
if [ "$#" -ne 5 ] ; then
|
if [ "$#" -ne 5 ] ; then
|
||||||
echo "Usage: $0 [docker image tag] [geoserver version] [geoserver master version] [datadir| nodatadir] [pull|no_pull];"
|
echo "Usage: $0 [docker image tag] [geoserver version] [geoserver main version] [datadir|nodatadir] [pull|no_pull];"
|
||||||
echo "";
|
echo "";
|
||||||
echo "[docker image tag] : the tag to be used for the docker iamge ";
|
echo "[docker image tag] : the tag to be used for the docker iamge ";
|
||||||
echo "[geoserver version] : the release version of geoserver to be used; you can set it to master if you want the last release";
|
echo "[geoserver version] : the release version of geoserver to be used; you can set it to main if you want the last release";
|
||||||
echo "[geoserver master version] : if you use the master version for geoserver you need to set it to the numerical value for the next release;"
|
echo "[geoserver main version] : if you use the main version for geoserver you need to set it to the numerical value for the next release;"
|
||||||
echo " if you use a released version you need to put it to the release number";
|
echo " if you use a released version you need to put it to the release number";
|
||||||
echo "[datadir| nodatadir]: if this parameter is equal to nodatadir the datadir is not burned in the docker images ";
|
echo "[datadir|nodatadir]: datadir: copies ${DATADIR_ARTIFACT_DIRECTORY} in place into the containerr image, nodatadir: does nothing about any custom datadir";
|
||||||
echo "[pull|no pull]: docker build use always a remote image or a local image";
|
echo "[pull|no_pull]: docker build use always a remote image or a local image";
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function clean_up_directory() {
|
function clean_up_directory() {
|
||||||
rm -rf ${1}/*
|
# we shall never clean datadir
|
||||||
|
rm -rf ./resources/geoserver-plugins/* ./reosurces/geoserver/*
|
||||||
|
}
|
||||||
|
function create_plugins_folder() {
|
||||||
|
mkdir -p ./resources/geoserver-plugins
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function download_from_url_to_a_filepath {
|
function download_from_url_to_a_filepath {
|
||||||
URL=${1}
|
URL=${1}
|
||||||
FILE_PATH=${2}
|
FILE_PATH=${2}
|
||||||
FILE_DOWNLOADED=$(basename "${FILE_PATH}" )
|
FILE_DOWNLOADED=$(basename "${FILE_PATH}" )
|
||||||
if [ -f "${FILE_PATH}" ]; then
|
|
||||||
rm -f "${FILE_PATH}"
|
|
||||||
fi
|
|
||||||
if [ ! -f "${FILE_PATH}" ]; then
|
if [ ! -f "${FILE_PATH}" ]; then
|
||||||
curl -L "${URL}" --output "${FILE_PATH}"
|
curl -L "${URL}" --output "${FILE_PATH}"
|
||||||
echo "* ${FILE_DOWNLOADED} artefact dowloaded *"
|
echo "* ${FILE_DOWNLOADED} artefact dowloaded *"
|
||||||
|
|
@ -54,13 +59,13 @@ function download_plugin() {
|
||||||
PLUGIN_NAME=${2}
|
PLUGIN_NAME=${2}
|
||||||
|
|
||||||
case ${GEOSERVER_VERSION} in
|
case ${GEOSERVER_VERSION} in
|
||||||
"${GEOSERVER_MASTER_VERSION::-2}.x")
|
"${GEOSERVER_MASTER_VERSION%.*}")
|
||||||
PLUGIN_FULL_NAME=geoserver-${GEOSERVER_VERSION::-2}-SNAPSHOT-${PLUGIN_NAME}-plugin.zip
|
PLUGIN_FULL_NAME=geoserver-${GEOSERVER_VERSION%.*}-SNAPSHOT-${PLUGIN_NAME}-plugin.zip
|
||||||
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL}/${GEOSERVER_VERSION}/${TYPE}-latest/${PLUGIN_FULL_NAME}
|
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL}/${GEOSERVER_VERSION}/${TYPE}-latest/${PLUGIN_FULL_NAME}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"master")
|
"main")
|
||||||
PLUGIN_FULL_NAME=geoserver-${GEOSERVER_MASTER_VERSION::-2}-SNAPSHOT-${PLUGIN_NAME}-plugin.zip
|
PLUGIN_FULL_NAME=geoserver-${GEOSERVER_MASTER_VERSION%.*}-SNAPSHOT-${PLUGIN_NAME}-plugin.zip
|
||||||
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL}/${GEOSERVER_VERSION}/${TYPE}-latest/${PLUGIN_FULL_NAME}
|
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL}/${GEOSERVER_VERSION}/${TYPE}-latest/${PLUGIN_FULL_NAME}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
@ -70,21 +75,14 @@ function download_plugin() {
|
||||||
NEWTYPE=extensions
|
NEWTYPE=extensions
|
||||||
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL_STABLE}/${GEOSERVER_VERSION}/${NEWTYPE}/${PLUGIN_FULL_NAME}
|
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL_STABLE}/${GEOSERVER_VERSION}/${NEWTYPE}/${PLUGIN_FULL_NAME}
|
||||||
else
|
else
|
||||||
VERSION="${GEOSERVER_VERSION::-2}-SNAPSHOT"
|
VERSION="${GEOSERVER_VERSION%.*}-SNAPSHOT"
|
||||||
PLUGIN_FULL_NAME=geoserver-${VERSION}-${PLUGIN_NAME}-plugin.zip
|
PLUGIN_FULL_NAME=geoserver-${VERSION}-${PLUGIN_NAME}-plugin.zip
|
||||||
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL}/${GEOSERVER_VERSION::-2}.x/${TYPE}-latest/${PLUGIN_FULL_NAME}
|
PLUGIN_ARTIFACT_URL=${BASE_BUILD_URL}/${GEOSERVER_VERSION%.*}.x/${TYPE}-latest/${PLUGIN_FULL_NAME}
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
if [ ! -e "${PLUGIN_ARTIFACT_DIRECTORY}" ]; then
|
|
||||||
mkdir -p "${PLUGIN_ARTIFACT_DIRECTORY}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
download_from_url_to_a_filepath "${PLUGIN_ARTIFACT_URL}" "${PLUGIN_ARTIFACT_DIRECTORY}/${PLUGIN_FULL_NAME}"
|
download_from_url_to_a_filepath "${PLUGIN_ARTIFACT_URL}" "${PLUGIN_ARTIFACT_DIRECTORY}/${PLUGIN_FULL_NAME}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,6 +93,23 @@ function download_fonts() {
|
||||||
download_from_url_to_a_filepath "${EXTRA_FONTS_URL}" "${FONTS_ARTIFACT_DIRECTORY}/fonts.tar.gz"
|
download_from_url_to_a_filepath "${EXTRA_FONTS_URL}" "${FONTS_ARTIFACT_DIRECTORY}/fonts.tar.gz"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function download_marlin() {
|
||||||
|
IFS='.' read -r -a marlin_v_arr <<< "$MARLIN_VERSION"
|
||||||
|
unset IFS
|
||||||
|
|
||||||
|
marlin_major=${marlin_v_arr[0]}
|
||||||
|
marlin_minor=${marlin_v_arr[1]}
|
||||||
|
marlin_patch=${marlin_v_arr[2]}
|
||||||
|
|
||||||
|
if [ ! -e "${MARLIN_ARTIFACT_DIRECTORY}" ]; then
|
||||||
|
mkdir -p "${MARLIN_ARTIFACT_DIRECTORY}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
marlin_url_1="https://github.com/bourgesl/marlin-renderer/releases/download/v${marlin_major}_${marlin_minor}_${marlin_patch}/marlin-${marlin_major}.${marlin_minor}.${marlin_patch}-Unsafe.jar"
|
||||||
|
marlin_url_2="https://github.com/bourgesl/marlin-renderer/releases/download/v${marlin_major}_${marlin_minor}_${marlin_patch}/marlin-${marlin_major}.${marlin_minor}.${marlin_patch}-Unsafe-sun-java2d.jar"
|
||||||
|
download_from_url_to_a_filepath "${marlin_url_1}" "${MARLIN_ARTIFACT_DIRECTORY}/marlin-${marlin_major}.${marlin_minor}.${marlin_patch}-Unsafe.jar"
|
||||||
|
download_from_url_to_a_filepath "${marlin_url_2}" "${MARLIN_ARTIFACT_DIRECTORY}/marlin-${marlin_major}.${marlin_minor}.${marlin_patch}-Unsafe-sun-java2d.jar"
|
||||||
|
}
|
||||||
|
|
||||||
function download_geoserver() {
|
function download_geoserver() {
|
||||||
clean_up_directory ${GEOSERVER_ARTIFACT_DIRECTORY}
|
clean_up_directory ${GEOSERVER_ARTIFACT_DIRECTORY}
|
||||||
|
|
@ -102,7 +117,7 @@ function download_geoserver() {
|
||||||
local GEOSERVER_FILE_NAME_NIGHTLY="geoserver-${VERSION}-latest-war.zip"
|
local GEOSERVER_FILE_NAME_NIGHTLY="geoserver-${VERSION}-latest-war.zip"
|
||||||
local GEOSERVER_FILE_NAME_STABLE="geoserver-${VERSION}-war.zip"
|
local GEOSERVER_FILE_NAME_STABLE="geoserver-${VERSION}-war.zip"
|
||||||
|
|
||||||
if [[ ( "${VERSION}" =~ "x" ) || ( "${VERSION}" == "master" ) ]]; then
|
if [[ ( "${VERSION}" =~ "x" ) || ( "${VERSION}" == "main" ) ]]; then
|
||||||
local GEOSERVER_ARTIFACT_URL=${BASE_BUILD_URL}/${VERSION}/${GEOSERVER_FILE_NAME_NIGHTLY}
|
local GEOSERVER_ARTIFACT_URL=${BASE_BUILD_URL}/${VERSION}/${GEOSERVER_FILE_NAME_NIGHTLY}
|
||||||
else
|
else
|
||||||
local GEOSERVER_ARTIFACT_URL=${BASE_BUILD_URL_STABLE}/${VERSION}/${GEOSERVER_FILE_NAME_STABLE}
|
local GEOSERVER_ARTIFACT_URL=${BASE_BUILD_URL_STABLE}/${VERSION}/${GEOSERVER_FILE_NAME_STABLE}
|
||||||
|
|
@ -114,8 +129,11 @@ function download_geoserver() {
|
||||||
if [ ! -e "${GEOSERVER_ARTIFACT_DIRECTORY}" ]; then
|
if [ ! -e "${GEOSERVER_ARTIFACT_DIRECTORY}" ]; then
|
||||||
mkdir -p "${GEOSERVER_ARTIFACT_DIRECTORY}"
|
mkdir -p "${GEOSERVER_ARTIFACT_DIRECTORY}"
|
||||||
fi
|
fi
|
||||||
download_from_url_to_a_filepath "${GEOSERVER_ARTIFACT_URL}" "/tmp/geoserver.war.zip"
|
if [ -f "${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.war" ]; then
|
||||||
unzip -p /tmp/geoserver.war.zip geoserver.war > ${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.war
|
rm "${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.war"
|
||||||
|
fi
|
||||||
|
download_from_url_to_a_filepath "${GEOSERVER_ARTIFACT_URL}" "${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.${GEOSERVER_VERSION}.war.zip"
|
||||||
|
unzip "${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.${GEOSERVER_VERSION}.war.zip" geoserver.war -d "${GEOSERVER_ARTIFACT_DIRECTORY}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -123,16 +141,27 @@ function build_with_data_dir() {
|
||||||
|
|
||||||
local TAG=${1}
|
local TAG=${1}
|
||||||
local PULL_ENABLED=${2}
|
local PULL_ENABLED=${2}
|
||||||
|
DOCKER_VERSION="$(docker --version | grep "Docker version"| awk '{print $3}' | sed 's/,//')"
|
||||||
|
case $DOCKER_VERSION in
|
||||||
|
*"20"*)
|
||||||
if [[ "${PULL_ENABLED}" == "pull" ]]; then
|
if [[ "${PULL_ENABLED}" == "pull" ]]; then
|
||||||
DOCKER_BUILD_COMMAND="docker build --pull"
|
DOCKER_BUILD_COMMAND="docker buildx build --pull"
|
||||||
else
|
else
|
||||||
DOCKER_BUILD_COMMAND="docker build"
|
DOCKER_BUILD_COMMAND="docker buildx build"
|
||||||
fi;
|
fi;
|
||||||
${DOCKER_BUILD_COMMAND} --no-cache \
|
;;
|
||||||
--build-arg GEOSERVER_WEBAPP_SRC=${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.war \
|
*"19"*)
|
||||||
|
if [[ "${PULL_ENABLED}" == "pull" ]]; then
|
||||||
|
DOCKER_BUILD_COMMAND="docker build --pull --no-cache"
|
||||||
|
else
|
||||||
|
DOCKER_BUILD_COMMAND="docker build --no-cache"
|
||||||
|
fi;
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
${DOCKER_BUILD_COMMAND} --build-arg GEOSERVER_WEBAPP_SRC=${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.war \
|
||||||
--build-arg PLUG_IN_URLS=$PLUGIN_ARTIFACT_DIRECTORY \
|
--build-arg PLUG_IN_URLS=$PLUGIN_ARTIFACT_DIRECTORY \
|
||||||
--build-arg GEOSERVER_DATA_DIR_SRC=${GEOSERVER_DATA_DIR_DIRECTORY} \
|
--build-arg GEOSERVER_DATA_DIR_SRC=${DATADIR_ARTIFACT_DIRECTORY} \
|
||||||
-t geoserver/geoserver:"${TAG}-${GEOSERVER_VERSION}" \
|
-t geosolutionsit/geoserver:"${TAG}-${GEOSERVER_VERSION}" \
|
||||||
.
|
.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -140,27 +169,45 @@ function build_without_data_dir() {
|
||||||
|
|
||||||
local TAG=${1}
|
local TAG=${1}
|
||||||
local PULL_ENABLED=${2}
|
local PULL_ENABLED=${2}
|
||||||
|
DOCKER_VERSION="$(docker --version | grep "Docker version"| awk '{print $3}' | sed 's/,//')"
|
||||||
|
case $DOCKER_VERSION in
|
||||||
|
*"20"*)
|
||||||
|
docker builder prune --all -f
|
||||||
if [[ "${PULL_ENABLED}" == "pull" ]]; then
|
if [[ "${PULL_ENABLED}" == "pull" ]]; then
|
||||||
DOCKER_BUILD_COMMAND="docker build --pull"
|
DOCKER_BUILD_COMMAND="docker buildx build --pull"
|
||||||
else
|
else
|
||||||
DOCKER_BUILD_COMMAND="docker build"
|
DOCKER_BUILD_COMMAND="docker buildx build"
|
||||||
fi;
|
fi;
|
||||||
${DOCKER_BUILD_COMMAND} --no-cache \
|
;;
|
||||||
--build-arg GEOSERVER_WEBAPP_SRC=${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.war \
|
*"19"*)
|
||||||
|
if [[ "${PULL_ENABLED}" == "pull" ]]; then
|
||||||
|
DOCKER_BUILD_COMMAND="docker build --pull --no-cache"
|
||||||
|
else
|
||||||
|
DOCKER_BUILD_COMMAND="docker build --no-cache"
|
||||||
|
fi;
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
${DOCKER_BUILD_COMMAND} --build-arg GEOSERVER_WEBAPP_SRC=${GEOSERVER_ARTIFACT_DIRECTORY}/geoserver.war \
|
||||||
--build-arg PLUG_IN_URLS=$PLUGIN_ARTIFACT_DIRECTORY\
|
--build-arg PLUG_IN_URLS=$PLUGIN_ARTIFACT_DIRECTORY\
|
||||||
-t geoserver/geoserver:"${TAG}-${GEOSERVER_VERSION}" \
|
-t geosolutionsit/geoserver:"${TAG}-${GEOSERVER_VERSION}" \
|
||||||
.
|
.
|
||||||
}
|
}
|
||||||
|
|
||||||
function main {
|
function main {
|
||||||
help ${ALL_PARAMETERS}
|
help ${ALL_PARAMETERS}
|
||||||
|
clean_up_directory
|
||||||
download_geoserver "${GEOSERVER_VERSION}"
|
download_geoserver "${GEOSERVER_VERSION}"
|
||||||
clean_up_directory ${PLUGIN_ARTIFACT_DIRECTORY}
|
create_plugins_folder
|
||||||
|
# download_plugin ext monitor
|
||||||
|
# download_plugin ext control-flow
|
||||||
|
# download_plugin ext geofence-plugin
|
||||||
|
# download_plugin ext geofence-server-plugin
|
||||||
|
# download_plugin community sec-oauth2-geonode
|
||||||
|
#download_marlin
|
||||||
|
|
||||||
if [[ ${GEOSERVER_DATA_DIR_RELEASE} = "nodatadir" ]]; then
|
if [ "${GEOSERVER_DATA_DIR_RELEASE}" = "nodatadir" ]; then
|
||||||
build_without_data_dir "${TAG}" "${PULL}"
|
build_without_data_dir "${TAG}" "${PULL}"
|
||||||
else
|
else
|
||||||
clean_up_directory ${DATADIR_ARTIFACT_DIRECTORY}
|
|
||||||
build_with_data_dir "${TAG}" "${PULL}"
|
build_with_data_dir "${TAG}" "${PULL}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||
26
hooks/build
26
hooks/build
|
|
@ -1,7 +1,6 @@
|
||||||
#!/bin/bash -x
|
#!/bin/bash -x
|
||||||
|
|
||||||
#PLUG_IN_LIST="monitor control-flow"
|
PLUG_IN_LIST="monitor control-flow libjpeg-turbo"
|
||||||
PLUG_IN_LIST=""
|
|
||||||
NIGHTLY_MASTER_PLUG_IN_VERSION="2.$(expr $MIDDLE_STABLE + 1)-SNAPSHOT"
|
NIGHTLY_MASTER_PLUG_IN_VERSION="2.$(expr $MIDDLE_STABLE + 1)-SNAPSHOT"
|
||||||
NIGHTLY_STABLE_PLUG_IN_VERSION="2.$MIDDLE_STABLE-SNAPSHOT"
|
NIGHTLY_STABLE_PLUG_IN_VERSION="2.$MIDDLE_STABLE-SNAPSHOT"
|
||||||
NIGHTLY_MAINT_PLUG_IN_VERSION="2.$(expr $MIDDLE_STABLE - 1)-SNAPSHOT"
|
NIGHTLY_MAINT_PLUG_IN_VERSION="2.$(expr $MIDDLE_STABLE - 1)-SNAPSHOT"
|
||||||
|
|
@ -52,28 +51,5 @@ for VERSION in $STABLE_VERSION $MAINT_VERSION; do
|
||||||
--build-arg PLUG_IN_URLS="./resources/geoserver-plugins" \
|
--build-arg PLUG_IN_URLS="./resources/geoserver-plugins" \
|
||||||
-f "$DOCKERFILE_PATH" \
|
-f "$DOCKERFILE_PATH" \
|
||||||
-t "${DOCKER_REPO}:$VERSION" .
|
-t "${DOCKER_REPO}:$VERSION" .
|
||||||
if [ "$VERSION" == "$LATEST_VERSION" ]; then
|
|
||||||
docker tag "${DOCKER_REPO}:$VERSION" "${DOCKER_REPO}:latest"
|
|
||||||
fi
|
|
||||||
rm -rf ./resources/geoserver-plugins/*
|
rm -rf ./resources/geoserver-plugins/*
|
||||||
done
|
done
|
||||||
|
|
||||||
for VERSION in RC_VERSION; do
|
|
||||||
GEOSERVER_URL="https://netcologne.dl.sourceforge.net/project/geoserver/GeoServer/$VERSION/geoserver-$VERSION-war.zip"
|
|
||||||
mkdir -p ./resources/geoserver-plugins
|
|
||||||
for PLUG_IN_NAME in $PLUG_IN_LIST; do
|
|
||||||
echo $PLUG_IN_NAME
|
|
||||||
echo $VERSION
|
|
||||||
mkdir -p ./resources/geoserver-plugins
|
|
||||||
URL="https://netcologne.dl.sourceforge.net/project/geoserver/GeoServer/$VERSION/extensions/geoserver-$VERSION-$PLUG_IN_NAME-plugin.zip"
|
|
||||||
wget $URL -O ./resources/geoserver-plugins/geoserver-$PLUG_IN_VERSION-$PLUG_IN_NAME-plugin.zip
|
|
||||||
done
|
|
||||||
var=$(IFS=$'\ '; echo "${PLUG_IN_URLS[*]}" )
|
|
||||||
docker build \
|
|
||||||
--build-arg GEOSERVER_WEBAPP_SRC="$GEOSERVER_URL" \
|
|
||||||
--build-arg PLUG_IN_URLS="./resources/geoserver-plugins" \
|
|
||||||
-f "$DOCKERFILE_PATH" \
|
|
||||||
-t "${DOCKER_REPO}:$VERSION" .
|
|
||||||
rm -rf ./resources/geoserver-plugins/*
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,15 +9,6 @@ for NIGHTLY_VERSION in $NIGHTLY_MASTER_VERSION $NIGHTLY_STABLE_VERSION $NIGHTLY_
|
||||||
done
|
done
|
||||||
|
|
||||||
for VERSION in $STABLE_VERSION $MAINT_VERSION; do
|
for VERSION in $STABLE_VERSION $MAINT_VERSION; do
|
||||||
if [ "$(grep $VERSION /tmp/failed_versions)" == "" ]; then
|
|
||||||
docker push "${DOCKER_REPO}:$VERSION"
|
|
||||||
if [ "$VERSION" == "$LATEST_VERSION" ]; then
|
|
||||||
docker push "${DOCKER_REPO}:latest"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for VERSION in $RC_VERSION; do
|
|
||||||
if [ "$(grep $VERSION /tmp/failed_versions)" == "" ]; then
|
if [ "$(grep $VERSION /tmp/failed_versions)" == "" ]; then
|
||||||
docker push "${DOCKER_REPO}:$VERSION"
|
docker push "${DOCKER_REPO}:$VERSION"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,3 @@ for VERSION in $STABLE_VERSION $MAINT_VERSION; do
|
||||||
#export VERSION=$VERSION
|
#export VERSION=$VERSION
|
||||||
timeout 10m docker-compose -f docker-compose.test.yml run --rm sut || ( echo "test for docker image geoserver:$VERSION failed" && echo $VERSION >> /tmp/failed_versions )
|
timeout 10m docker-compose -f docker-compose.test.yml run --rm sut || ( echo "test for docker image geoserver:$VERSION failed" && echo $VERSION >> /tmp/failed_versions )
|
||||||
done
|
done
|
||||||
|
|
||||||
for VERSION in $RC_VERSION; do
|
|
||||||
timeout 10m docker-compose -f docker-compose.test.yml run --rm sut || ( echo "test for docker image geoserver:$VERSION failed" && echo $VERSION >> /tmp/failed_versions )
|
|
||||||
done
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue