From f713c8c5c3804d33ffa6b4164c45da1966fa6760 Mon Sep 17 00:00:00 2001 From: Rodrigo Zanato Tripodi Date: Mon, 5 Nov 2018 19:10:06 -0200 Subject: [PATCH 01/12] Updated geoserver to 2.14.0 with alpine openjre --- Dockerfile | 26 ++++++++++++++------------ 01_geoserver.sh => my_startup.sh | 5 ++--- 2 files changed, 16 insertions(+), 15 deletions(-) rename 01_geoserver.sh => my_startup.sh (88%) diff --git a/Dockerfile b/Dockerfile index 0ce36b8..6d491f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,25 @@ -FROM neowaylabs/java8:latest +FROM java:openjdk-8-jre-alpine MAINTAINER Rodrigo Zanato Tripodi EXPOSE 8080 +ARG GEOSERVER_VERSION=2.14.0 + ENV JAVA_OPTS -Xms128m -Xmx512m -XX:MaxPermSize=512m ENV ADMIN_PASSWD geoserver -RUN apt-get install -qqy unzip && \ - wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/2.6.1/geoserver-2.6.1-bin.zip \ - -O /tmp/geoserver-2.6.1-bin.zip && \ - unzip /tmp/geoserver-2.6.1-bin.zip -d /opt && \ +RUN apk add --update openssl +RUN wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/${GEOSERVER_VERSION}/geoserver-${GEOSERVER_VERSION}-bin.zip \ + -O /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip && \ + mkdir /opt && \ + unzip /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip -d /opt && \ cd /opt && \ - ln -s geoserver-2.6.1 geoserver - -ADD 01_geoserver.sh /etc/my_init.d/01_geoserver.sh -RUN chmod +x /etc/my_init.d/01_geoserver.sh + ln -s geoserver-${GEOSERVER_VERSION} geoserver && \ + rm /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip -CMD ["/sbin/my_init"] +ADD my_startup.sh /opt/geoserver/bin/my_startup.sh +RUN chmod +x /opt/geoserver/bin/my_startup.sh -RUN apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +WORKDIR /opt/geoserver +CMD ["/opt/geoserver/bin/my_startup.sh"] diff --git a/01_geoserver.sh b/my_startup.sh similarity index 88% rename from 01_geoserver.sh rename to my_startup.sh index fcfa23d..cc6d646 100644 --- a/01_geoserver.sh +++ b/my_startup.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh set -e if [ -n "${ADMIN_PASSWD}" ]; then @@ -10,5 +10,4 @@ if [ -n "${ADMIN_PASSWD}" ]; then EOF fi -cd /opt/geoserver/bin -./startup.sh +exec /opt/geoserver/bin/startup.sh From c83626b8c516471d75baae1757442d837a690af3 Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Fri, 15 Mar 2019 12:12:19 +0000 Subject: [PATCH 02/12] temp changes --- Dockerfile | 15 +++++++++++---- Makefile | 2 +- backup.sh | 33 +++++++++++++++++++++++++++++++++ install.sh | 19 +++++++++++++++++++ my_startup.sh | 43 +++++++++++++++++++++++++++++++------------ 5 files changed, 95 insertions(+), 17 deletions(-) create mode 100644 backup.sh create mode 100644 install.sh diff --git a/Dockerfile b/Dockerfile index 6d491f6..07db546 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,5 @@ FROM java:openjdk-8-jre-alpine -MAINTAINER Rodrigo Zanato Tripodi - EXPOSE 8080 ARG GEOSERVER_VERSION=2.14.0 @@ -9,6 +7,13 @@ ARG GEOSERVER_VERSION=2.14.0 ENV JAVA_OPTS -Xms128m -Xmx512m -XX:MaxPermSize=512m ENV ADMIN_PASSWD geoserver +ADD install.sh install.sh +RUN sh install.sh && rm install.sh +ENV S3_ACCESS_KEY_ID **None** +ENV S3_SECRET_ACCESS_KEY **None** +ENV S3_BUCKET **None** +ENV S3_REGION eu-west-1 + RUN apk add --update openssl RUN wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/${GEOSERVER_VERSION}/geoserver-${GEOSERVER_VERSION}-bin.zip \ -O /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip && \ @@ -18,8 +23,10 @@ RUN wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/${GEOSE ln -s geoserver-${GEOSERVER_VERSION} geoserver && \ rm /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip +ADD backup.sh /opt/geoserver/bin/backup.sh +RUN chmod +x /opt/geoserver/bin/backup.sh ADD my_startup.sh /opt/geoserver/bin/my_startup.sh RUN chmod +x /opt/geoserver/bin/my_startup.sh - WORKDIR /opt/geoserver -CMD ["/opt/geoserver/bin/my_startup.sh"] +CMD ["sh", "/opt/geoserver/bin/my_startup.sh"] + diff --git a/Makefile b/Makefile index 617cbc5..62b6616 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -IMAGENAME = neowaylabs/geoserver +IMAGENAME = navenio/geoserver all: build diff --git a/backup.sh b/backup.sh new file mode 100644 index 0000000..f21fbbd --- /dev/null +++ b/backup.sh @@ -0,0 +1,33 @@ +set -o pipefail + +if [ "${S3_ACCESS_KEY_ID}" = "**None**" ]; then + echo "You need to set the S3_ACCESS_KEY_ID environment variable." +fi + +if [ "${S3_SECRET_ACCESS_KEY}" = "**None**" ]; then + echo "You need to set the S3_SECRET_ACCESS_KEY environment variable." +fi + +if [ "${S3_BUCKET}" = "**None**" ]; then + echo "You need to set the S3_BUCKET environment variable." +fi + +# env vars needed for aws tools +export AWS_ACCESS_KEY_ID=$S3_ACCESS_KEY_ID +export AWS_SECRET_ACCESS_KEY=$S3_SECRET_ACCESS_KEY +export AWS_DEFAULT_REGION=$S3_REGION + +tar -cvf geoserver_conf_backup.tar /opt/geoserver/data_dir + +echo "Uploading dump to $S3_BUCKET" +old=$(aws s3 ls s3://$S3_BUCKET | wc -l) +aws $AWS_ARGS s3 cp geoserver_conf_backup.tar s3://$S3_BUCKET/geoserver_conf_backup_$(date +"%Y-%m-%dT%H:%M:%SZ").tar || exit 2 +new=$(aws s3 ls s3://$S3_BUCKET | wc -l) +rm -rf geoserver_conf_backup.tar + +if [ $(($old+1)) == $new ] +then + echo "geoserver config backup uploaded successfully" +else + echo "failed to upload geoserver config backup" +fi diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..85f0b67 --- /dev/null +++ b/install.sh @@ -0,0 +1,19 @@ +#! /bin/sh + +# exit if a command fails +set -e + +apk update +# install s3 tools +apk add python py-pip +pip install awscli +apk del py-pip + +# install go-cron +apk add curl +curl -L --insecure https://github.com/odise/go-cron/releases/download/v0.0.6/go-cron-linux.gz | zcat > /usr/local/bin/go-cron +chmod u+x /usr/local/bin/go-cron +apk del curl + +# install supervisor +apk add supervisor diff --git a/my_startup.sh b/my_startup.sh index cc6d646..975ebac 100644 --- a/my_startup.sh +++ b/my_startup.sh @@ -1,13 +1,32 @@ +#!/bin/bash + +# turn on bash's job control +set -m + +# Start the primary process and put it in the background +/bin/sh /opt/geoserver/bin/startup.sh + +# Start the helper process +# go-cron "*/3 * * * *" /bin/sh /opt/geoserver/bin/backup.sh + +# the my_helper_process might need to know how to wait on the +# primary process to start before it does its work and returns + + +# now we bring the primary process back into the foreground +# and leave it there +# fg %1 + #!/bin/sh -set -e - -if [ -n "${ADMIN_PASSWD}" ]; then - cat > /opt/geoserver/data_dir/security/usergroup/default/users.xml < - - - -EOF -fi - -exec /opt/geoserver/bin/startup.sh +# set -e + +# if [ -n "${ADMIN_PASSWD}" ]; then +# cat > /opt/geoserver/data_dir/security/usergroup/default/users.xml < +# +# +# +# EOF +# fi +# exec go-cron "*/1 * * * *" /bin/sh /opt/geoserver/bin/backup.sh +# exec /bin/sh /opt/geoserver/bin/startup.sh From 06c8609964f27e980e6c44473c1b2729b54e0447 Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Sat, 16 Mar 2019 11:21:05 +0000 Subject: [PATCH 03/12] added backup and restore plugin --- Dockerfile | 15 ++++++++------- Makefile | 2 +- backup.sh | 33 --------------------------------- install.sh | 2 -- my_startup.sh | 34 ++++++++++------------------------ 5 files changed, 19 insertions(+), 67 deletions(-) delete mode 100644 backup.sh diff --git a/Dockerfile b/Dockerfile index 07db546..149f441 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,16 +3,13 @@ FROM java:openjdk-8-jre-alpine EXPOSE 8080 ARG GEOSERVER_VERSION=2.14.0 +ARG GEOSERVER_PLUGIN_VERSION=2.14.x ENV JAVA_OPTS -Xms128m -Xmx512m -XX:MaxPermSize=512m ENV ADMIN_PASSWD geoserver ADD install.sh install.sh RUN sh install.sh && rm install.sh -ENV S3_ACCESS_KEY_ID **None** -ENV S3_SECRET_ACCESS_KEY **None** -ENV S3_BUCKET **None** -ENV S3_REGION eu-west-1 RUN apk add --update openssl RUN wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/${GEOSERVER_VERSION}/geoserver-${GEOSERVER_VERSION}-bin.zip \ @@ -22,11 +19,15 @@ RUN wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/${GEOSE cd /opt && \ ln -s geoserver-${GEOSERVER_VERSION} geoserver && \ rm /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip - -ADD backup.sh /opt/geoserver/bin/backup.sh -RUN chmod +x /opt/geoserver/bin/backup.sh +RUN mkdir geoserver-backup-plugin && cd geoserver-backup-plugin && \ + wget -c https://build.geoserver.org/geoserver/2.14.x/community-2019-03-15/geoserver-2.14-SNAPSHOT-backup-restore-plugin.zip && \ + unzip geoserver-2.14-SNAPSHOT-backup-restore-plugin.zip && \ + rm geoserver-2.14-SNAPSHOT-backup-restore-plugin.zip +RUN cp /geoserver-backup-plugin/* /opt/geoserver/webapps/geoserver/WEB-INF/lib/ && \ + rm -rf /geoserver-backup-plugin ADD my_startup.sh /opt/geoserver/bin/my_startup.sh RUN chmod +x /opt/geoserver/bin/my_startup.sh WORKDIR /opt/geoserver CMD ["sh", "/opt/geoserver/bin/my_startup.sh"] + diff --git a/Makefile b/Makefile index 62b6616..b0b4036 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -IMAGENAME = navenio/geoserver +IMAGENAME = navenio/geoserver:1.0 all: build diff --git a/backup.sh b/backup.sh deleted file mode 100644 index f21fbbd..0000000 --- a/backup.sh +++ /dev/null @@ -1,33 +0,0 @@ -set -o pipefail - -if [ "${S3_ACCESS_KEY_ID}" = "**None**" ]; then - echo "You need to set the S3_ACCESS_KEY_ID environment variable." -fi - -if [ "${S3_SECRET_ACCESS_KEY}" = "**None**" ]; then - echo "You need to set the S3_SECRET_ACCESS_KEY environment variable." -fi - -if [ "${S3_BUCKET}" = "**None**" ]; then - echo "You need to set the S3_BUCKET environment variable." -fi - -# env vars needed for aws tools -export AWS_ACCESS_KEY_ID=$S3_ACCESS_KEY_ID -export AWS_SECRET_ACCESS_KEY=$S3_SECRET_ACCESS_KEY -export AWS_DEFAULT_REGION=$S3_REGION - -tar -cvf geoserver_conf_backup.tar /opt/geoserver/data_dir - -echo "Uploading dump to $S3_BUCKET" -old=$(aws s3 ls s3://$S3_BUCKET | wc -l) -aws $AWS_ARGS s3 cp geoserver_conf_backup.tar s3://$S3_BUCKET/geoserver_conf_backup_$(date +"%Y-%m-%dT%H:%M:%SZ").tar || exit 2 -new=$(aws s3 ls s3://$S3_BUCKET | wc -l) -rm -rf geoserver_conf_backup.tar - -if [ $(($old+1)) == $new ] -then - echo "geoserver config backup uploaded successfully" -else - echo "failed to upload geoserver config backup" -fi diff --git a/install.sh b/install.sh index 85f0b67..5a58d02 100644 --- a/install.sh +++ b/install.sh @@ -15,5 +15,3 @@ curl -L --insecure https://github.com/odise/go-cron/releases/download/v0.0.6/go- chmod u+x /usr/local/bin/go-cron apk del curl -# install supervisor -apk add supervisor diff --git a/my_startup.sh b/my_startup.sh index 975ebac..9d678f4 100644 --- a/my_startup.sh +++ b/my_startup.sh @@ -1,32 +1,18 @@ #!/bin/bash # turn on bash's job control -set -m +# set -m # Start the primary process and put it in the background /bin/sh /opt/geoserver/bin/startup.sh -# Start the helper process -# go-cron "*/3 * * * *" /bin/sh /opt/geoserver/bin/backup.sh +if [ -n "${ADMIN_PASSWD}" ]; then + cat > /opt/geoserver/data_dir/security/usergroup/default/users.xml < + + + +EOF +fi -# the my_helper_process might need to know how to wait on the -# primary process to start before it does its work and returns - - -# now we bring the primary process back into the foreground -# and leave it there -# fg %1 - -#!/bin/sh -# set -e - -# if [ -n "${ADMIN_PASSWD}" ]; then -# cat > /opt/geoserver/data_dir/security/usergroup/default/users.xml < -# -# -# -# EOF -# fi -# exec go-cron "*/1 * * * *" /bin/sh /opt/geoserver/bin/backup.sh -# exec /bin/sh /opt/geoserver/bin/startup.sh +/bin/sh /opt/geoserver/bin/startup.sh From 2291b121b6f259473bab6d9725056926ffd7882d Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Sat, 16 Mar 2019 11:25:17 +0000 Subject: [PATCH 04/12] updated readme --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a6d5c07..ac28a5b 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,20 @@ [Geoserver](http://geoserver.org/) docker -## Environment settings: +## Environment settings * JAVA_OPTS (default: -Xms128m -Xmx512m -XX:MaxPermSize=512m) * ADMIN_PASSWD (default: geoserver) -## Exposed TCP ports: +## Exposed TCP ports * 8080: REST and Admin interface -## Internal volumes: +## Internal volumes * /opt/geoserver/data_dir: default application data directory * /opt/geoserver/data_dir/styles: styles (sld, xml, images) directory + +## Plugins installed + +* backup/restore From 4ba0737ea31cb818372ed3920b7499df36b5bc00 Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Wed, 20 Mar 2019 19:21:59 +0000 Subject: [PATCH 05/12] deployed with tomcat added geogig --- Dockerfile | 58 ++++++++++++++++++++++++++++++------------------------ Makefile | 4 ++-- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/Dockerfile b/Dockerfile index 149f441..ae47c92 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,33 +1,39 @@ -FROM java:openjdk-8-jre-alpine +FROM tomcat:9-jre8 -EXPOSE 8080 +# +# Set GeoServer version and data directory +# +ARG GEOSERVER_VERSION=2.14 +ARG PATCH_NUMBER=2 +ENV GEOSERVER_DATA_DIR="/geoserver_data/data" -ARG GEOSERVER_VERSION=2.14.0 -ARG GEOSERVER_PLUGIN_VERSION=2.14.x +# +# Download and install GeoServer +# +RUN wget --no-check-certificate --progress=bar:force:noscroll \ + https://sourceforge.net/projects/geoserver/files/GeoServer/${GEOSERVER_VERSION}.${PATCH_NUMBER}/geoserver-${GEOSERVER_VERSION}.${PATCH_NUMBER}-war.zip && \ + unzip -q geoserver-${GEOSERVER_VERSION}.${PATCH_NUMBER}-war.zip \ + && mv geoserver.war webapps/ \ + && rm geoserver-${GEOSERVER_VERSION}.${PATCH_NUMBER}-war.zip \ + && cd webapps \ + && unzip -q geoserver.war -d geoserver \ + && rm geoserver.war \ + && mkdir -p $GEOSERVER_DATA_DIR -ENV JAVA_OPTS -Xms128m -Xmx512m -XX:MaxPermSize=512m -ENV ADMIN_PASSWD geoserver +RUN mkdir geoserver-backup-plugin && cd geoserver-backup-plugin && \ + wget -c https://build.geoserver.org/geoserver/${GEOSERVER_VERSION}.x/community-latest/geoserver-${GEOSERVER_VERSION}-SNAPSHOT-backup-restore-plugin.zip && \ + unzip geoserver-${GEOSERVER_VERSION}-SNAPSHOT-backup-restore-plugin.zip && \ + rm geoserver-${GEOSERVER_VERSION}-SNAPSHOT-backup-restore-plugin.zip -ADD install.sh install.sh -RUN sh install.sh && rm install.sh +RUN cp geoserver-backup-plugin/* webapps/geoserver/WEB-INF/lib/ && \ + rm -rf geoserver-backup-plugin -RUN apk add --update openssl -RUN wget -c http://downloads.sourceforge.net/project/geoserver/GeoServer/${GEOSERVER_VERSION}/geoserver-${GEOSERVER_VERSION}-bin.zip \ - -O /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip && \ - mkdir /opt && \ - unzip /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip -d /opt && \ - cd /opt && \ - ln -s geoserver-${GEOSERVER_VERSION} geoserver && \ - rm /tmp/geoserver-${GEOSERVER_VERSION}-bin.zip -RUN mkdir geoserver-backup-plugin && cd geoserver-backup-plugin && \ - wget -c https://build.geoserver.org/geoserver/2.14.x/community-2019-03-15/geoserver-2.14-SNAPSHOT-backup-restore-plugin.zip && \ - unzip geoserver-2.14-SNAPSHOT-backup-restore-plugin.zip && \ - rm geoserver-2.14-SNAPSHOT-backup-restore-plugin.zip -RUN cp /geoserver-backup-plugin/* /opt/geoserver/webapps/geoserver/WEB-INF/lib/ && \ - rm -rf /geoserver-backup-plugin -ADD my_startup.sh /opt/geoserver/bin/my_startup.sh -RUN chmod +x /opt/geoserver/bin/my_startup.sh -WORKDIR /opt/geoserver -CMD ["sh", "/opt/geoserver/bin/my_startup.sh"] +RUN mkdir geogig-plugin && cd geogig-plugin && \ + wget -c https://build.geoserver.org/geoserver/${GEOSERVER_VERSION}.x/community-latest/geoserver-${GEOSERVER_VERSION}-SNAPSHOT-geogig-plugin.zip && \ + unzip geoserver-${GEOSERVER_VERSION}-SNAPSHOT-geogig-plugin.zip && \ + rm geoserver-${GEOSERVER_VERSION}-SNAPSHOT-geogig-plugin.zip +RUN cp geogig-plugin/* webapps/geoserver/WEB-INF/lib/ && \ + rm -rf geogig-plugin +ENV JAVA_OPTS="-Djava.awt.headless=true -XX:MaxPermSize=512m -XX:PermSize=256m -Xms512m -Xmx2048m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=4 -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT -Dorg.geotools.shapefile.datetime=true" \ No newline at end of file diff --git a/Makefile b/Makefile index b0b4036..5f49f29 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -IMAGENAME = navenio/geoserver:1.0 +IMAGENAME = navenio-docker.jfrog.io/geoserver/geoserver_2_14_2:0.2 all: build @@ -9,4 +9,4 @@ clean: docker images | awk -F' ' '{if ($$1=="$(IMAGENAME)") print $$3}' | xargs -r docker rmi test: - docker run --rm -t -i -p 8080:8080 $(IMAGENAME) + docker run --rm -t -i -p 8080:8080 -v /Users/davidedelerma/Desktop/postgres_backup/postgis_stage_backup/geoserver_data_dir_19-03-19/:/geoserver_data/data $(IMAGENAME) From 6be7af95e7f6b402c94c3e514afda86e939a4309 Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Wed, 20 Mar 2019 19:25:05 +0000 Subject: [PATCH 06/12] removed unused files --- install.sh | 17 ----------------- my_startup.sh | 18 ------------------ 2 files changed, 35 deletions(-) delete mode 100644 install.sh delete mode 100644 my_startup.sh diff --git a/install.sh b/install.sh deleted file mode 100644 index 5a58d02..0000000 --- a/install.sh +++ /dev/null @@ -1,17 +0,0 @@ -#! /bin/sh - -# exit if a command fails -set -e - -apk update -# install s3 tools -apk add python py-pip -pip install awscli -apk del py-pip - -# install go-cron -apk add curl -curl -L --insecure https://github.com/odise/go-cron/releases/download/v0.0.6/go-cron-linux.gz | zcat > /usr/local/bin/go-cron -chmod u+x /usr/local/bin/go-cron -apk del curl - diff --git a/my_startup.sh b/my_startup.sh deleted file mode 100644 index 9d678f4..0000000 --- a/my_startup.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# turn on bash's job control -# set -m - -# Start the primary process and put it in the background -/bin/sh /opt/geoserver/bin/startup.sh - -if [ -n "${ADMIN_PASSWD}" ]; then - cat > /opt/geoserver/data_dir/security/usergroup/default/users.xml < - - - -EOF -fi - -/bin/sh /opt/geoserver/bin/startup.sh From 29af628184be5e198ef3845c06dc0d30b7d4d3a8 Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Wed, 20 Mar 2019 19:26:12 +0000 Subject: [PATCH 07/12] update makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5f49f29..2e2c292 100644 --- a/Makefile +++ b/Makefile @@ -9,4 +9,4 @@ clean: docker images | awk -F' ' '{if ($$1=="$(IMAGENAME)") print $$3}' | xargs -r docker rmi test: - docker run --rm -t -i -p 8080:8080 -v /Users/davidedelerma/Desktop/postgres_backup/postgis_stage_backup/geoserver_data_dir_19-03-19/:/geoserver_data/data $(IMAGENAME) + docker run --rm -t -i -p 8080:8080 -v $(IMAGENAME) From 4553d2466c9be127ad7d1e77c1870ff458696906 Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Wed, 20 Mar 2019 19:35:01 +0000 Subject: [PATCH 08/12] update makefile --- Makefile | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 2e2c292..5740ba3 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,4 @@ -IMAGENAME = navenio-docker.jfrog.io/geoserver/geoserver_2_14_2:0.2 - -all: build +IMAGENAME = navenio-docker.jfrog.io/geoserver/geoserver_2_14_2:${TAG} build: docker build -t $(IMAGENAME) . @@ -9,4 +7,10 @@ clean: docker images | awk -F' ' '{if ($$1=="$(IMAGENAME)") print $$3}' | xargs -r docker rmi test: - docker run --rm -t -i -p 8080:8080 -v $(IMAGENAME) + docker run --rm -t -i -p 8080:8080 $(IMAGENAME) + +test_volume: + docker run --rm -t -i -p 8080:8080 -v ${LOCAL_DATA_DIR}:/geoserver_data/data $(IMAGENAME) + +push: + docker push $(IMAGENAME) \ No newline at end of file From eb32d66eedaf0f920fb74d421a1636658b09d52b Mon Sep 17 00:00:00 2001 From: Davide de Lerma Date: Wed, 20 Mar 2019 20:05:24 +0000 Subject: [PATCH 09/12] small change makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5740ba3..88c8dff 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -IMAGENAME = navenio-docker.jfrog.io/geoserver/geoserver_2_14_2:${TAG} +IMAGENAME = navenio-docker.jfrog.io/geoserver/geoserver_2_14:${TAG} build: docker build -t $(IMAGENAME) . From 303ceee48b11d409fdb6a340762c30fede9f36e9 Mon Sep 17 00:00:00 2001 From: Spike Lampson Date: Tue, 27 Jun 2023 11:58:51 +0100 Subject: [PATCH 10/12] updating to include the backup plugin --- Dockerfile | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index ae47c92..57977ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,39 +1,29 @@ -FROM tomcat:9-jre8 +FROM docker.osgeo.org/geoserver:2.23.1 # # Set GeoServer version and data directory # -ARG GEOSERVER_VERSION=2.14 -ARG PATCH_NUMBER=2 +ARG GEOSERVER_VERSION=2.23 +ARG PATCH_NUMBER=1 ENV GEOSERVER_DATA_DIR="/geoserver_data/data" # # Download and install GeoServer # -RUN wget --no-check-certificate --progress=bar:force:noscroll \ - https://sourceforge.net/projects/geoserver/files/GeoServer/${GEOSERVER_VERSION}.${PATCH_NUMBER}/geoserver-${GEOSERVER_VERSION}.${PATCH_NUMBER}-war.zip && \ - unzip -q geoserver-${GEOSERVER_VERSION}.${PATCH_NUMBER}-war.zip \ - && mv geoserver.war webapps/ \ - && rm geoserver-${GEOSERVER_VERSION}.${PATCH_NUMBER}-war.zip \ - && cd webapps \ - && unzip -q geoserver.war -d geoserver \ - && rm geoserver.war \ - && mkdir -p $GEOSERVER_DATA_DIR +RUN apt update && \ + apt upgrade -y && \ + apt install unzip +# Download the backup/restore plugin RUN mkdir geoserver-backup-plugin && cd geoserver-backup-plugin && \ wget -c https://build.geoserver.org/geoserver/${GEOSERVER_VERSION}.x/community-latest/geoserver-${GEOSERVER_VERSION}-SNAPSHOT-backup-restore-plugin.zip && \ unzip geoserver-${GEOSERVER_VERSION}-SNAPSHOT-backup-restore-plugin.zip && \ rm geoserver-${GEOSERVER_VERSION}-SNAPSHOT-backup-restore-plugin.zip -RUN cp geoserver-backup-plugin/* webapps/geoserver/WEB-INF/lib/ && \ +# Place the backup/restore plugin to be installed on startup +RUN mkdir /opt/additional_libs && \ + cp geoserver-backup-plugin/* /opt/additional_libs/ && \ rm -rf geoserver-backup-plugin -RUN mkdir geogig-plugin && cd geogig-plugin && \ - wget -c https://build.geoserver.org/geoserver/${GEOSERVER_VERSION}.x/community-latest/geoserver-${GEOSERVER_VERSION}-SNAPSHOT-geogig-plugin.zip && \ - unzip geoserver-${GEOSERVER_VERSION}-SNAPSHOT-geogig-plugin.zip && \ - rm geoserver-${GEOSERVER_VERSION}-SNAPSHOT-geogig-plugin.zip +ENV JAVA_OPTS="-Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT -Dorg.geotools.shapefile.datetime=true" -RUN cp geogig-plugin/* webapps/geoserver/WEB-INF/lib/ && \ - rm -rf geogig-plugin - -ENV JAVA_OPTS="-Djava.awt.headless=true -XX:MaxPermSize=512m -XX:PermSize=256m -Xms512m -Xmx2048m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=4 -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT -Dorg.geotools.shapefile.datetime=true" \ No newline at end of file From a9b2437afa38a0fcc5c5394534bd91d84dfa40fd Mon Sep 17 00:00:00 2001 From: Spike Lampson Date: Mon, 3 Jul 2023 14:02:33 +0100 Subject: [PATCH 11/12] Adding docker-compose for testing --- docker-compose.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docker-compose.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..c35565f --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,20 @@ +version: '3' +services: + geoserver: + build: + context: . + args: + - GEOSERVER_VERSION=2.23 + - CORS_ENABLED=true + - CORS_ALLOWED_METHODS=GET,POST,PUT,HEAD,OPTIONS + ports: + - 80:8080 + environment: + - INSTALL_EXTENSIONS=true + - STABLE_EXTENSIONS=wps,csw + - EXTRA_JAVA_OPTS=-Xms1G -Xmx2G + - SKIP_DEMO_DATA=true + - ROOT_WEBAPP_REDIRECT=true + # - GEOSERVER_DATA_DIR=/opt/geoserver_data + volumes: + - ./geoserver_data:/opt/geoserver_data/:Z From b309b5409c7a3596f91a980ebfcdd8eb3aa406ea Mon Sep 17 00:00:00 2001 From: Spike Lampson Date: Thu, 20 Jul 2023 11:42:13 +0100 Subject: [PATCH 12/12] Updating after testing --- Dockerfile | 4 +++- README.md | 10 +++++++--- docker-compose.yaml | 7 ++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 57977ff..3670ffe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,9 @@ FROM docker.osgeo.org/geoserver:2.23.1 # ARG GEOSERVER_VERSION=2.23 ARG PATCH_NUMBER=1 -ENV GEOSERVER_DATA_DIR="/geoserver_data/data" +ARG CORS_ENABLED=true +ARG CORS_ALLOWED_METHODS=GET,POST,PUT,HEAD,OPTIONS +ENV GEOSERVER_DATA_DIR="/geoserver_data" # # Download and install GeoServer diff --git a/README.md b/README.md index ac28a5b..5d1f294 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,17 @@ ## Exposed TCP ports -* 8080: REST and Admin interface +* 80: REST and Admin interface ## Internal volumes -* /opt/geoserver/data_dir: default application data directory -* /opt/geoserver/data_dir/styles: styles (sld, xml, images) directory +* /geoserver_data: default application data directory ## Plugins installed * backup/restore + +## Docker compose + +* Download data directory (e.g. kubectl -n geoserver-prod cp geoserver-prod/geoserver-prod-0:/geoserver_data/data .). Run via docker-compose -f docker-compose.yaml up --build +* You can then find the geoserver at localhost/geoserver/ diff --git a/docker-compose.yaml b/docker-compose.yaml index c35565f..be40e92 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,4 +1,4 @@ -version: '3' +version: '1' services: geoserver: build: @@ -15,6 +15,7 @@ services: - EXTRA_JAVA_OPTS=-Xms1G -Xmx2G - SKIP_DEMO_DATA=true - ROOT_WEBAPP_REDIRECT=true - # - GEOSERVER_DATA_DIR=/opt/geoserver_data + - GEOSERVER_REQUIRE_FILE=/geoserver_data/global.xml + - GEOSERVER_DATA_DIR=/geoserver_data volumes: - - ./geoserver_data:/opt/geoserver_data/:Z + - ./data:/geoserver_data/:Z