Commit b28c8ad3 authored by Ignacio's avatar Ignacio
Browse files

Merge branch 'dev' of gitlab.com:redmic-project/gis/geoserver into dev

parents 6c16e16f 0f7da6c6
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
resources/*
!resources/*.zip
!resources/*.jar
!resources/*.deb
!resources/*.tar.gz
 No newline at end of file
*
!/resources/*.zip
!/resources/*.jar
!/resources/*.deb
!/resources/*.tar.gz
!/scripts
+95 −15
Original line number Diff line number Diff line
@@ -53,17 +53,42 @@ container-scanning:
  artifacts:
    paths: [gl-sast-container-report.json]

deploy-geoserver-dev:
deploy-geoserver-master-dev:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver
    STATUS_CHECK_DELAY: 180
    SERVICES_TO_CHECK: gis_geoserver-master
    STATUS_CHECK_DELAY: 400
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    COMPOSE_FILE: docker-compose.geoserver-master.tmpl.yml:docker-compose.geoserver-master.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - create-nets.sh gis-net
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: geoserver-master-dev
    url: https://${DEV_GEOSERVER_ADMIN_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - dev
  when: manual

deploy-geoserver-slave-dev:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-slave
    STATUS_CHECK_DELAY: 400
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.geoserver-slave.tmpl.yml:docker-compose.geoserver-slave.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
@@ -72,23 +97,52 @@ deploy-geoserver-dev:
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: geoserver-dev
    name: geoserver-slave-dev
    url: https://${DEV_GEOSERVER_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - dev
  when: manual

deploy-geoserver-supporting-branch:
deploy-geoserver-master-supporting-branch:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver
    STATUS_CHECK_DELAY: 180
    SERVICES_TO_CHECK: gis_geoserver-master
    STATUS_CHECK_DELAY: 400
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml
    COMPOSE_FILE: docker-compose.geoserver-master.tmpl.yml:docker-compose.geoserver-master.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
    - create-nets.sh gis-net
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      GEOSERVER_PASS=${GEOSERVER_PASS}
  environment:
    name: geoserver-master-dev
    url: https://${DEV_GEOSERVER_ADMIN_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - branches
  except:
    - master
    - dev
  when: manual

deploy-geoserver-slave-supporting-branch:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${DEV_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-slave
    STATUS_CHECK_DELAY: 400
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.geoserver-slave.tmpl.yml:docker-compose.geoserver-slave.dev.yml
    GEOSERVER_SUBDOMAIN: ${DEV_GEOSERVER_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${DEV_PUBLIC_HOSTNAME}
  script:
@@ -97,7 +151,7 @@ deploy-geoserver-supporting-branch:
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: geoserver-dev
    name: geoserver-slave-dev
    url: https://${DEV_GEOSERVER_SUBDOMAIN}.${DEV_PUBLIC_HOSTNAME}
  only:
    - branches
@@ -106,17 +160,43 @@ deploy-geoserver-supporting-branch:
    - dev
  when: manual

deploy-geoserver-pro:
deploy-geoserver-master-pro:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver-master
    STATUS_CHECK_DELAY: 400
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.geoserver-master.tmpl.yml:docker-compose.geoserver-master.prod.yml
    GEOSERVER_SUBDOMAIN: ${PRO_GEOSERVER_ADMIN_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME}
  script:
    - create-nets.sh gis-net
    - >
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
      GEOSERVER_PASS=${GEOSERVER_PASS}
  environment:
    name: geoserver-master-pro
    url: https://${PRO_GEOSERVER_ADMIN_SUBDOMAIN}.${PRO_PUBLIC_HOSTNAME}
  only:
    - master
  when: manual

deploy-geoserver-slave-pro:
  stage: deploy
  image: registry.gitlab.com/redmic-project/docker/docker-deploy
  variables:
    SSH_REMOTE: ${PRO_SSH_REMOTE}
    STACK: gis
    SERVICES_TO_CHECK: gis_geoserver
    STATUS_CHECK_DELAY: 180
    SERVICES_TO_CHECK: gis_geoserver-slave
    STATUS_CHECK_DELAY: 400
    IMAGE_NAME: ${CI_REGISTRY_IMAGE}
    IMAGE_TAG: ${CI_COMMIT_SHA}
    COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml
    COMPOSE_FILE: docker-compose.geoserver-slave.tmpl.yml:docker-compose.geoserver-slave.prod.yml
    GEOSERVER_SUBDOMAIN: ${PRO_GEOSERVER_SUBDOMAIN}
    PUBLIC_HOSTNAME: ${PRO_PUBLIC_HOSTNAME}
  script:
@@ -124,7 +204,7 @@ deploy-geoserver-pro:
      deploy.sh IMAGE_NAME=${IMAGE_NAME} IMAGE_TAG=${IMAGE_TAG} COMPOSE_FILE=${COMPOSE_FILE}
      GEOSERVER_SUBDOMAIN=${GEOSERVER_SUBDOMAIN} PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME}
  environment:
    name: geoserver-pro
    name: geoserver-slave-pro
    url: https://${PRO_GEOSERVER_SUBDOMAIN}.${PRO_PUBLIC_HOSTNAME}
  only:
    - master
+125 −143
Original line number Diff line number Diff line
@@ -4,43 +4,30 @@ LABEL maintainer="info@redmic.es"

ENV DEBIAN_FRONTEND="noninteractive" \
	GEOSERVER_PLUGINS="css inspire libjpeg-turbo csw wps pyramid vectortiles netcdf gdal importer netcdf-out" \
    GEOSERVER_COMMUNITY_PLUGINS="gwc-s3 hz-cluster" \
	GEOSERVER_COMMUNITY_PLUGINS="gwc-s3" \
	GEOSERVER_MAJOR_VERSION="2.12" \
	GEOSERVER_MINOR_VERSION="5" \
	GEOSERVER_DATA_DIR="/var/geoserver/data" \
	GEOSERVER_HOME="/opt/geoserver" \
	GEOSERVER_LOG_DIR="/var/log/geoserver" \
    GEOSERVER_OPTS="-server \
     -XX:+AggressiveOpts \
     -XX:+HeapDumpOnOutOfMemoryError \
     -XX:MaxNewSize=256m \
     -XX:NewSize=256m \
     -XX:MaxMetaspaceSize=128m \
     -XX:SurvivorRatio=12 \
     -XX:MaxTenuringThreshold=0 \
     -XX:+UseConcMarkSweepGC \
     -XX:+CMSIncrementalMode \
     -XX:+CMSIncrementalPacing \
     -XX:+CMSClassUnloadingEnabled \
     -XX:+DisableExplicitGC \
     -XX:+UseTLAB \
     -XX:SoftRefLRUPolicyMSPerMB=36000 \
	GEOSERVER_OPTS="-Djava.awt.headless=true \
		-server \
		-XX:PerfDataSamplingInterval=500 \
		-Dorg.geotools.referencing.forceXY=true \
		-XX:SoftRefLRUPolicyMSPerMB=36000  \
		-XX:NewRatio=2 \
		-XX:+CMSClassUnloadingEnabled \
		-Djavax.servlet.request.encoding=UTF-8 \
		-Djavax.servlet.response.encoding=UTF-8 \
		-Dorg.geotools.shapefile.datetime=true \
		-XX:+UnlockExperimentalVMOptions \
		-XX:MaxRAMFraction=2 \
		-XX:+AggressiveOPT \
		-XX:+UseCGroupMemoryLimitForHeap \
     -XX:MaxRAMFraction=1 \
     -Djava.awt.headless=true \
     -Dorg.geotools.referencing.forceXY=true \
		-Djava.library.path=/usr/share/java:/opt/libjpeg-turbo/lib64:/usr/lib/jni" \
	GOOGLE_FONTS="Open%20Sans Roboto Lato Ubuntu" \
	NOTO_FONTS="NotoSans-unhinted NotoSerif-unhinted NotoMono-hinted" \
    GEOSERVER_PORT="8080" \
    SYNC_MODE="event" \
    SYNC_DELAY="0" \
    CLUSTER_NAME="geoserver-cluster" \
    CLUSTER_PASSWORD="changeme" \
    SESSION_STICKY="true" \
    HAZELCAST_PORT="5701"
	GEOSERVER_PORT="8080"

ENV GEOSERVER_VERSION="${GEOSERVER_MAJOR_VERSION}.${GEOSERVER_MINOR_VERSION}" \
	GEOSERVER_LOG_LOCATION="${GEOSERVER_LOG_DIR}/geoserver.log" \
@@ -48,14 +35,9 @@ ENV GEOSERVER_VERSION="${GEOSERVER_MAJOR_VERSION}.${GEOSERVER_MINOR_VERSION}" \

ARG TEMP_PATH=/tmp/resources

RUN mkdir -p "${TEMP_PATH}" && \
    mkdir -p "${GEOSERVER_DATA_DIR}" && \
    mkdir -p "${GEOSERVER_LOG_DIR}"

COPY ./scripts /

# Install extra fonts to use with sld font markers
RUN apt-get update && \
RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \
	apt-get update && \
	apt-get install -y --no-install-recommends fonts-cantarell \
		lmodern \
		ttf-aenigma \
@@ -70,7 +52,7 @@ RUN apt-get update && \
		libnetcdf11 \
		libnetcdf-c++4 \
		netcdf-bin \
        gettext-base
		dnsutils

# Copy resources
# Install Google Noto fonts
@@ -101,14 +83,12 @@ RUN FILENAME="geoserver-${GEOSERVER_VERSION}-bin.zip" && \
	fi; \
	unzip -o ${TEMP_PATH}/${FILENAME} -d /opt/ && \
	mv -v ${GEOSERVER_HOME}* ${GEOSERVER_HOME} && \
    rm -rf ${GEOSERVER_HOME}/data_dir/coverages && \
    rm -rf ${GEOSERVER_HOME}/data_dir/data && \
    rm -rf ${GEOSERVER_HOME}/data_dir/demo && \
    rm -rf ${GEOSERVER_HOME}/data_dir/gwc-layers && \
    rm -rf ${GEOSERVER_HOME}/data_dir/layergroups && \
    rm -rf ${GEOSERVER_HOME}/data_dir/workspaces && \
    mv -f /web.xml ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/web.xml

	rm -rf ${GEOSERVER_HOME}/data_dir/coverages/* \
		${GEOSERVER_HOME}/data_dir/data/* \
		${GEOSERVER_HOME}/data_dir/demo/* \
		${GEOSERVER_HOME}/data_dir/gwc-layers/* \
		${GEOSERVER_HOME}/data_dir/layergroups/* \
		${GEOSERVER_HOME}/data_dir/workspaces/*

# Install Marlin
ARG MARLIN_VERSION=0.9.1
@@ -194,6 +174,8 @@ RUN rm -fr ${TEMP_PATH} && \

USER geoserver

COPY ./scripts /

EXPOSE ${GEOSERVER_PORT}

ENTRYPOINT ["/docker-entrypoint.sh"]
+6 −7
Original line number Diff line number Diff line
GEOSERVER_PORT=8080
HAZELCAST_PORT=5701
CLUSTER_NAME=geoserver-cluster
CLUSTER_PASSWORD="changeme"
SYNC_MODE=event
SYNC_DELAY=0
SESSION_STICKY=true
CLUSTER_DISCOVERY_URL=tasks.geoserver
GEOSERVER_USER=admin
GEOSERVER_PASS=geoserver
SLAVE_SERVICE_NAME=geoserver-slave
SLAVES_MANAGEMENT_DELAY=180
SLAVES_MANAGEMENT_INTERVAL=1800
SLAVE_MANAGEMENT_TIMEOUT=300
+5 −0
Original line number Diff line number Diff line
version: '3.5'

volumes:
  geoserver-vol:
    name: geoserver-vol
Loading