Loading .dockerignore 0 → 100644 +6 −0 Original line number Diff line number Diff line resources/* !resources/*.zip !resources/*.jar !resources/*.deb !resources/*.tar.gz No newline at end of file .env 0 → 100644 +1 −0 Original line number Diff line number Diff line GEOSERVER_PORT=8080 .gitignore 0 → 100644 +6 −0 Original line number Diff line number Diff line resources/* !resources/*.zip !resources/*.jar !resources/*.deb !resources/*.tar.gz No newline at end of file .gitlab-ci.yml 0 → 100644 +100 −0 Original line number Diff line number Diff line stages: - package - test-package - deploy docker-build-dev: stage: package image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - branches except: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker build -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest . - docker push ${CI_REGISTRY_IMAGE} docker-build-pro: stage: package image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker build -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:latest . - docker push ${CI_REGISTRY_IMAGE} container_scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches except: - master script: - docker run -d --name db arminc/clair-db:latest - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 - apk add -U wget ca-certificates - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 - mv clair-scanner_linux_amd64 clair-scanner - chmod +x clair-scanner - touch clair-whitelist.yml - ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true artifacts: paths: [gl-sast-container-report.json] deploy-dev: stage: deploy image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml services: - docker:dind script: - deploy.sh IMAGE_TAG=${IMAGE_TAG} REGISTRY_HOSTNAME=${REGISTRY_HOSTNAME} COMPOSE_FILE=${COMPOSE_FILE} environment: name: dev only: - branches except: - master when: manual deploy-pro: stage: deploy image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml services: - docker:dind script: - deploy.sh IMAGE_TAG=${IMAGE_TAG} REGISTRY_HOSTNAME=${REGISTRY_HOSTNAME} COMPOSE_FILE=${COMPOSE_FILE} environment: name: pro only: - master when: manual Dockerfile 0 → 100644 +201 −0 Original line number Diff line number Diff line FROM openjdk:8-jdk RUN export DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND="noninteractive" \ GEOSERVER_PLUGINS="css inspire libjpeg-turbo csw wps pyramid vectortiles netcdf gdal importer netcdf-out" \ GEOSERVER_COMMUNITY_PLUGINS="gwc-s3 jms-cluster" \ GEOSERVER_MAJOR_VERSION="2.12" \ GEOSERVER_MINOR_VERSION="2" \ GEOSERVER_NODE_OPTS='id:$host_name' \ GEOSERVER_DATA_DIR="/var/geoserver/data" \ GEOSERVER_HOME="/opt/geoserver" \ GEOSERVER_LOG_LOCATION="/var/log" \ CLUSTER_CONFIG_DIR="/var/geoserver/conf/cluster" \ GEOSERVER_OPTS="-server -Xrs -XX:PerfDataSamplingInterval=500 \ -Dorg.geotools.referencing.forceXY=true -XX:SoftRefLRUPolicyMSPerMB=36000 \ -XX:+UseParallelGC --XX:+UseParNewGC –XX:+UseG1GC -XX:NewRatio=2 \ -XX:+CMSClassUnloadingEnabled" \ GOOGLE_FONTS="Open%20Sans Roboto Lato Ubuntu" \ NOTO_FONTS="NotoSans-unhinted NotoSerif-unhinted NotoMono-hinted" \ BROKER_TOPIC_NAME="VirtualTopic.geoserver" \ BROKER_URL="tcp\://activemq-broker\:61666" \ BROKER_GROUP="geoserver-cluster" \ ROLE="slave" ENV GEOSERVER_VERSION="${GEOSERVER_MAJOR_VERSION}.${GEOSERVER_MINOR_VERSION}" \ GEOSERVER_LOG_LOCATION="${GEOSERVER_LOG_DIR}/geoserver.log" ARG TEMP_PATH=/tmp/resources RUN mkdir -p $TEMP_PATH && \ mkdir -p $CLUSTER_CONFIG_DIR && \ mkdir -p $GEOSERVER_DATA_DIR # Install extra fonts to use with sld font markers RUN apt-get update && \ apt-get install -y --no-install-recommends fonts-cantarell \ lmodern \ ttf-aenigma \ ttf-georgewilliams \ ttf-bitstream-vera \ ttf-sjfonts \ tv-fonts \ libtcnative-1 \ libgdal20 \ libgdal-java \ libnetcdf11 \ libnetcdf-c++4 \ netcdf-bin \ gettext-base \ dnsutils \ rsync # Copy resources COPY resources $TEMP_PATH # Install Google Noto fonts RUN mkdir -p /usr/share/fonts/truetype/noto && \ for FONT in ${NOTO_FONTS}; \ do \ if [ ! -f ${TEMP_PATH}/${FONT}.zip ]; then \ curl -L https://noto-website-2.storage.googleapis.com/pkgs/${FONT}.zip --output ${TEMP_PATH}/${FONT}.zip ; \ fi; \ unzip -o ${TEMP_PATH}/${FONT}.zip -d /usr/share/fonts/truetype/noto ; \ done # Install Google Fonts RUN for FONT in ${GOOGLE_FONTS}; \ do \ mkdir -p /usr/share/fonts/truetype/${FONT} && \ if [ ! -f ${TEMP_PATH}/${FONT}.zip ]; then \ curl -L "https://fonts.google.com/download?family=${FONT}" --output ${TEMP_PATH}/${FONT}.zip ; \ fi; \ unzip -o ${TEMP_PATH}/${FONT}.zip -d /usr/share/fonts/truetype/${FONT} ; \ done # Install GeoServer RUN FILENAME="geoserver-${GEOSERVER_VERSION}-bin.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ URL="https://sourceforge.net/projects/geoserver/files/GeoServer/${GEOSERVER_VERSION}" && \ curl -L ${URL}/${FILENAME} -o ${TEMP_PATH}/${FILENAME} ; \ fi; \ unzip -o ${TEMP_PATH}/${FILENAME} -d /opt/ && \ mv -v ${GEOSERVER_HOME}* ${GEOSERVER_HOME} && \ rm -rf ${GEOSERVER_HOME}/data_dir/workspaces/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/layergroups/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/data/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/coverages/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/demo && \ rm -rf ${GEOSERVER_HOME}/data_dir/logs # Install Marlin ARG MARLIN_VERSION=0.9.1 RUN FILENAME=$(echo "marlin-${MARLIN_VERSION}-Unsafe.jar") && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ URL="https://github.com/bourgesl/marlin-renderer/releases/download/v0_9_1//${FILENAME}" && \ curl -L $URL --output ${TEMP_PATH}/${FILENAME} ; \ fi; \ cp ${TEMP_PATH}/$FILENAME ${GEOSERVER_HOME}/lib ENV MARLIN_JAR="${GEOSERVER_HOME}/lib/marlin-${MARLIN_VERSION}-Unsafe.jar" # Install Turbo JPEG ARG TURBO_JPEG_VERSION=1.5.3 RUN TURBO_JPEG_FILENAME=$(echo "libjpeg-turbo-official_${TURBO_JPEG_VERSION}_amd64.deb") && \ if [ ! -f ${TEMP_PATH}/${TURBO_JPEG_FILENAME} ]; then \ URL="https://sourceforge.net/projects/libjpeg-turbo/files/${TURBO_JPEG_VERSION}/${TURBO_JPEG_FILENAME}" && \ curl -L $URL --output ${TEMP_PATH}/${TURBO_JPEG_FILENAME} ; \ fi; \ dpkg -i ${TEMP_PATH}/$TURBO_JPEG_FILENAME # Install JAI & Image IO ARG JAI_VERSION=1_1_3 ARG IMAGE_IO_VERSION=1_1 RUN rm ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/jai_*jar && \ cd $JAVA_HOME && \ echo $JAVA_HOME && \ JAI_FILENAME=$(echo "jai-${JAI_VERSION}-lib-linux-amd64-jdk.bin") && \ if [ ! -f ${TEMP_PATH}/${JAI_FILENAME} ]; then \ URL="http://data.boundlessgeo.com/suite/jai/${JAI_FILENAME}" && \ curl -L $URL --output $TEMP_PATH/$JAI_FILENAME ; \ fi; \ mv $TEMP_PATH/$JAI_FILENAME $JAVA_HOME && \ echo "yes" | sh $JAI_FILENAME && \ rm $JAI_FILENAME && \ export _POSIX2_VERSION=199209 && \ IMAGE_IO_FILENAME="jai_imageio-${IMAGE_IO_VERSION}-lib-linux-amd64-jdk.bin" && \ if [ ! -f ${TEMP_PATH}/${IMAGE_IO_FILENAME} ]; then \ URL="http://data.opengeo.org/suite/jai/${IMAGE_IO_FILENAME}" && \ curl -L $URL --output $TEMP_PATH/$IMAGE_IO_FILENAME ; \ fi; \ mv $TEMP_PATH/$IMAGE_IO_FILENAME $JAVA_HOME && \ echo "yes" | sh $IMAGE_IO_FILENAME && \ rm $IMAGE_IO_FILENAME # Install GeoServer Plugins RUN URL="https://sourceforge.net/projects/geoserver/files/GeoServer/${GEOSERVER_VERSION}/extensions" && \ for PLUGIN in ${GEOSERVER_PLUGINS}; \ do \ FILENAME="geoserver-${GEOSERVER_VERSION}-${PLUGIN}-plugin.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ curl -L "$URL/$FILENAME" -o "${TEMP_PATH}/${FILENAME}" ; \ fi; \ unzip -o "${TEMP_PATH}/${FILENAME}" -d "${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/" ; \ done # Install GeoServer Community Plugins RUN URL="http://ares.boundlessgeo.com/geoserver/${GEOSERVER_MAJOR_VERSION}.x/community-latest" && \ for PLUGIN in ${GEOSERVER_COMMUNITY_PLUGINS}; \ do \ FILENAME="geoserver-${GEOSERVER_MAJOR_VERSION}-SNAPSHOT-${PLUGIN}-plugin.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ curl -L $URL/$FILENAME -o ${TEMP_PATH}/${FILENAME} ; \ fi; \ unzip -o ${TEMP_PATH}/${FILENAME} -d ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/ ; \ done # Install ElasticSearch plugin RUN URL="https://github.com/ngageoint/elasticgeo/releases/download/${GEOSERVER_VERSION}-RC1/" && \ FILENAME="elasticgeo-${GEOSERVER_VERSION}.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ curl -L $URL/$FILENAME -o ${TEMP_PATH}/${FILENAME} ; \ fi; \ unzip -o ${TEMP_PATH}/${FILENAME} -d ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/ ; ARG GDAL_VERSION="2.1.2" RUN rm ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/imageio-ext-gdal-bindings-*.jar && \ ln -s /usr/share/java/gdal.jar \ "${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/imageio-ext-gdal-bindings-${GDAL_VERSION}.jar" ENV GDAL_DATA="/usr/share/gdal/2.1" \ JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/share/java:/opt/libjpeg-turbo/lib64:/usr/lib/jni $GEOSERVER_OPTS" # Clean RUN rm -fr ${TEMP_PATH} && \ rm -rf /var/lib/apt/lists/* && \ apt-get clean COPY ./scripts / ENTRYPOINT ["/docker-entrypoint.sh"] EXPOSE 8080 CMD ["/opt/geoserver/bin/startup.sh"] No newline at end of file Loading
.dockerignore 0 → 100644 +6 −0 Original line number Diff line number Diff line resources/* !resources/*.zip !resources/*.jar !resources/*.deb !resources/*.tar.gz No newline at end of file
.gitignore 0 → 100644 +6 −0 Original line number Diff line number Diff line resources/* !resources/*.zip !resources/*.jar !resources/*.deb !resources/*.tar.gz No newline at end of file
.gitlab-ci.yml 0 → 100644 +100 −0 Original line number Diff line number Diff line stages: - package - test-package - deploy docker-build-dev: stage: package image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - branches except: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker build -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}-latest . - docker push ${CI_REGISTRY_IMAGE} docker-build-pro: stage: package image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 services: - docker:dind only: - master script: - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker build -t ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} -t ${CI_REGISTRY_IMAGE}:latest . - docker push ${CI_REGISTRY_IMAGE} container_scanning: stage: test-package image: docker:stable variables: DOCKER_DRIVER: overlay2 allow_failure: true services: - docker:stable-dind only: - branches except: - master script: - docker run -d --name db arminc/clair-db:latest - docker run -p 6060:6060 --link db:postgres -d --name clair arminc/clair-local-scan:v2.0.1 - apk add -U wget ca-certificates - docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY} - docker pull ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} - wget https://github.com/arminc/clair-scanner/releases/download/v8/clair-scanner_linux_amd64 - mv clair-scanner_linux_amd64 clair-scanner - chmod +x clair-scanner - touch clair-whitelist.yml - ./clair-scanner -c http://docker:6060 --ip $(hostname -i) -r gl-sast-container-report.json -l clair.log -w clair-whitelist.yml ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA} || true artifacts: paths: [gl-sast-container-report.json] deploy-dev: stage: deploy image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${DEV_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.dev.yml services: - docker:dind script: - deploy.sh IMAGE_TAG=${IMAGE_TAG} REGISTRY_HOSTNAME=${REGISTRY_HOSTNAME} COMPOSE_FILE=${COMPOSE_FILE} environment: name: dev only: - branches except: - master when: manual deploy-pro: stage: deploy image: redmic/docker-gitlab variables: DOCKER_DRIVER: overlay2 SSH_REMOTE: ${PRO_SSH_REMOTE} SERVICE: ${CI_PROJECT_NAME} IMAGE_TAG: ${CI_COMMIT_SHA} COMPOSE_FILE: docker-compose.tmpl.yml:docker-compose.prod.yml services: - docker:dind script: - deploy.sh IMAGE_TAG=${IMAGE_TAG} REGISTRY_HOSTNAME=${REGISTRY_HOSTNAME} COMPOSE_FILE=${COMPOSE_FILE} environment: name: pro only: - master when: manual
Dockerfile 0 → 100644 +201 −0 Original line number Diff line number Diff line FROM openjdk:8-jdk RUN export DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND="noninteractive" \ GEOSERVER_PLUGINS="css inspire libjpeg-turbo csw wps pyramid vectortiles netcdf gdal importer netcdf-out" \ GEOSERVER_COMMUNITY_PLUGINS="gwc-s3 jms-cluster" \ GEOSERVER_MAJOR_VERSION="2.12" \ GEOSERVER_MINOR_VERSION="2" \ GEOSERVER_NODE_OPTS='id:$host_name' \ GEOSERVER_DATA_DIR="/var/geoserver/data" \ GEOSERVER_HOME="/opt/geoserver" \ GEOSERVER_LOG_LOCATION="/var/log" \ CLUSTER_CONFIG_DIR="/var/geoserver/conf/cluster" \ GEOSERVER_OPTS="-server -Xrs -XX:PerfDataSamplingInterval=500 \ -Dorg.geotools.referencing.forceXY=true -XX:SoftRefLRUPolicyMSPerMB=36000 \ -XX:+UseParallelGC --XX:+UseParNewGC –XX:+UseG1GC -XX:NewRatio=2 \ -XX:+CMSClassUnloadingEnabled" \ GOOGLE_FONTS="Open%20Sans Roboto Lato Ubuntu" \ NOTO_FONTS="NotoSans-unhinted NotoSerif-unhinted NotoMono-hinted" \ BROKER_TOPIC_NAME="VirtualTopic.geoserver" \ BROKER_URL="tcp\://activemq-broker\:61666" \ BROKER_GROUP="geoserver-cluster" \ ROLE="slave" ENV GEOSERVER_VERSION="${GEOSERVER_MAJOR_VERSION}.${GEOSERVER_MINOR_VERSION}" \ GEOSERVER_LOG_LOCATION="${GEOSERVER_LOG_DIR}/geoserver.log" ARG TEMP_PATH=/tmp/resources RUN mkdir -p $TEMP_PATH && \ mkdir -p $CLUSTER_CONFIG_DIR && \ mkdir -p $GEOSERVER_DATA_DIR # Install extra fonts to use with sld font markers RUN apt-get update && \ apt-get install -y --no-install-recommends fonts-cantarell \ lmodern \ ttf-aenigma \ ttf-georgewilliams \ ttf-bitstream-vera \ ttf-sjfonts \ tv-fonts \ libtcnative-1 \ libgdal20 \ libgdal-java \ libnetcdf11 \ libnetcdf-c++4 \ netcdf-bin \ gettext-base \ dnsutils \ rsync # Copy resources COPY resources $TEMP_PATH # Install Google Noto fonts RUN mkdir -p /usr/share/fonts/truetype/noto && \ for FONT in ${NOTO_FONTS}; \ do \ if [ ! -f ${TEMP_PATH}/${FONT}.zip ]; then \ curl -L https://noto-website-2.storage.googleapis.com/pkgs/${FONT}.zip --output ${TEMP_PATH}/${FONT}.zip ; \ fi; \ unzip -o ${TEMP_PATH}/${FONT}.zip -d /usr/share/fonts/truetype/noto ; \ done # Install Google Fonts RUN for FONT in ${GOOGLE_FONTS}; \ do \ mkdir -p /usr/share/fonts/truetype/${FONT} && \ if [ ! -f ${TEMP_PATH}/${FONT}.zip ]; then \ curl -L "https://fonts.google.com/download?family=${FONT}" --output ${TEMP_PATH}/${FONT}.zip ; \ fi; \ unzip -o ${TEMP_PATH}/${FONT}.zip -d /usr/share/fonts/truetype/${FONT} ; \ done # Install GeoServer RUN FILENAME="geoserver-${GEOSERVER_VERSION}-bin.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ URL="https://sourceforge.net/projects/geoserver/files/GeoServer/${GEOSERVER_VERSION}" && \ curl -L ${URL}/${FILENAME} -o ${TEMP_PATH}/${FILENAME} ; \ fi; \ unzip -o ${TEMP_PATH}/${FILENAME} -d /opt/ && \ mv -v ${GEOSERVER_HOME}* ${GEOSERVER_HOME} && \ rm -rf ${GEOSERVER_HOME}/data_dir/workspaces/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/layergroups/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/data/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/coverages/* && \ rm -rf ${GEOSERVER_HOME}/data_dir/demo && \ rm -rf ${GEOSERVER_HOME}/data_dir/logs # Install Marlin ARG MARLIN_VERSION=0.9.1 RUN FILENAME=$(echo "marlin-${MARLIN_VERSION}-Unsafe.jar") && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ URL="https://github.com/bourgesl/marlin-renderer/releases/download/v0_9_1//${FILENAME}" && \ curl -L $URL --output ${TEMP_PATH}/${FILENAME} ; \ fi; \ cp ${TEMP_PATH}/$FILENAME ${GEOSERVER_HOME}/lib ENV MARLIN_JAR="${GEOSERVER_HOME}/lib/marlin-${MARLIN_VERSION}-Unsafe.jar" # Install Turbo JPEG ARG TURBO_JPEG_VERSION=1.5.3 RUN TURBO_JPEG_FILENAME=$(echo "libjpeg-turbo-official_${TURBO_JPEG_VERSION}_amd64.deb") && \ if [ ! -f ${TEMP_PATH}/${TURBO_JPEG_FILENAME} ]; then \ URL="https://sourceforge.net/projects/libjpeg-turbo/files/${TURBO_JPEG_VERSION}/${TURBO_JPEG_FILENAME}" && \ curl -L $URL --output ${TEMP_PATH}/${TURBO_JPEG_FILENAME} ; \ fi; \ dpkg -i ${TEMP_PATH}/$TURBO_JPEG_FILENAME # Install JAI & Image IO ARG JAI_VERSION=1_1_3 ARG IMAGE_IO_VERSION=1_1 RUN rm ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/jai_*jar && \ cd $JAVA_HOME && \ echo $JAVA_HOME && \ JAI_FILENAME=$(echo "jai-${JAI_VERSION}-lib-linux-amd64-jdk.bin") && \ if [ ! -f ${TEMP_PATH}/${JAI_FILENAME} ]; then \ URL="http://data.boundlessgeo.com/suite/jai/${JAI_FILENAME}" && \ curl -L $URL --output $TEMP_PATH/$JAI_FILENAME ; \ fi; \ mv $TEMP_PATH/$JAI_FILENAME $JAVA_HOME && \ echo "yes" | sh $JAI_FILENAME && \ rm $JAI_FILENAME && \ export _POSIX2_VERSION=199209 && \ IMAGE_IO_FILENAME="jai_imageio-${IMAGE_IO_VERSION}-lib-linux-amd64-jdk.bin" && \ if [ ! -f ${TEMP_PATH}/${IMAGE_IO_FILENAME} ]; then \ URL="http://data.opengeo.org/suite/jai/${IMAGE_IO_FILENAME}" && \ curl -L $URL --output $TEMP_PATH/$IMAGE_IO_FILENAME ; \ fi; \ mv $TEMP_PATH/$IMAGE_IO_FILENAME $JAVA_HOME && \ echo "yes" | sh $IMAGE_IO_FILENAME && \ rm $IMAGE_IO_FILENAME # Install GeoServer Plugins RUN URL="https://sourceforge.net/projects/geoserver/files/GeoServer/${GEOSERVER_VERSION}/extensions" && \ for PLUGIN in ${GEOSERVER_PLUGINS}; \ do \ FILENAME="geoserver-${GEOSERVER_VERSION}-${PLUGIN}-plugin.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ curl -L "$URL/$FILENAME" -o "${TEMP_PATH}/${FILENAME}" ; \ fi; \ unzip -o "${TEMP_PATH}/${FILENAME}" -d "${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/" ; \ done # Install GeoServer Community Plugins RUN URL="http://ares.boundlessgeo.com/geoserver/${GEOSERVER_MAJOR_VERSION}.x/community-latest" && \ for PLUGIN in ${GEOSERVER_COMMUNITY_PLUGINS}; \ do \ FILENAME="geoserver-${GEOSERVER_MAJOR_VERSION}-SNAPSHOT-${PLUGIN}-plugin.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ curl -L $URL/$FILENAME -o ${TEMP_PATH}/${FILENAME} ; \ fi; \ unzip -o ${TEMP_PATH}/${FILENAME} -d ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/ ; \ done # Install ElasticSearch plugin RUN URL="https://github.com/ngageoint/elasticgeo/releases/download/${GEOSERVER_VERSION}-RC1/" && \ FILENAME="elasticgeo-${GEOSERVER_VERSION}.zip" && \ if [ ! -f ${TEMP_PATH}/${FILENAME} ]; then \ curl -L $URL/$FILENAME -o ${TEMP_PATH}/${FILENAME} ; \ fi; \ unzip -o ${TEMP_PATH}/${FILENAME} -d ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/ ; ARG GDAL_VERSION="2.1.2" RUN rm ${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/imageio-ext-gdal-bindings-*.jar && \ ln -s /usr/share/java/gdal.jar \ "${GEOSERVER_HOME}/webapps/geoserver/WEB-INF/lib/imageio-ext-gdal-bindings-${GDAL_VERSION}.jar" ENV GDAL_DATA="/usr/share/gdal/2.1" \ JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/share/java:/opt/libjpeg-turbo/lib64:/usr/lib/jni $GEOSERVER_OPTS" # Clean RUN rm -fr ${TEMP_PATH} && \ rm -rf /var/lib/apt/lists/* && \ apt-get clean COPY ./scripts / ENTRYPOINT ["/docker-entrypoint.sh"] EXPOSE 8080 CMD ["/opt/geoserver/bin/startup.sh"] No newline at end of file