diff --git a/.env b/.env new file mode 100644 index 0000000..2c572d7 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +IMAGE_VERSION=2.22.4 +GS_VERSION=2.22.4 +TOMCAT_VERSION=9.0.78 diff --git a/Dockerfile b/Dockerfile index 7984a29..25d87aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 as tomcat +FROM lapierre/java-alpine:11 as tomcat ARG TOMCAT_VERSION=9.0.75 ARG CORS_ENABLED=false @@ -26,27 +26,18 @@ ENV CATALINA_OPTS="\$EXTRA_JAVA_OPTS \ -Dsun.java2d.renderer=sun.java2d.marlin.DMarlinRenderingEngine \ -Dorg.geotools.coverage.jaiext.enabled=true" -# init -RUN apt update \ -&& apt -y upgrade \ -&& 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/* - 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 \ -&& 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 + && 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 \ + && ln -s $CATALINA_HOME /opt/apache-tomcat # cleanup -RUN apt purge -y \ -&& apt autoremove --purge -y \ -&& rm -rf /tmp/* +RUN rm -rf /tmp/* FROM tomcat as download @@ -59,10 +50,10 @@ ENV GEOSERVER_BUILD=$GS_BUILD WORKDIR /tmp RUN echo "Downloading GeoServer ${GS_VERSION} ${GS_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 + && 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 FROM tomcat as install @@ -98,7 +89,7 @@ RUN echo "Installing GeoServer $GS_VERSION $GS_BUILD" COPY --from=download /tmp/geoserver $CATALINA_HOME/webapps/geoserver RUN mv $CATALINA_HOME/webapps/geoserver/WEB-INF/lib/marlin-*.jar $CATALINA_HOME/lib/marlin.jar \ -&& mkdir -p $GEOSERVER_DATA_DIR + && mkdir -p $GEOSERVER_DATA_DIR COPY $GS_DATA_PATH $GEOSERVER_DATA_DIR COPY $ADDITIONAL_LIBS_PATH $GEOSERVER_LIB_DIR diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f85ffab --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +include .env + +IMAGE_NAME=geoserver-docker.osgeo.org/geoserver + +docker: + docker build --build-arg CORS_ALLOWED_METHODS=GET,POST,PUT,HEAD,OPTIONS --build-arg CORS_ENABLED=true --build-arg GS_VERSION=$(GS_VERSION) --build-arg TOMCAT_VERSION=$(TOMCAT_VERSION) --pull -t $(IMAGE_NAME):$(IMAGE_VERSION) . + docker tag $(IMAGE_NAME):$(IMAGE_VERSION) $(IMAGE_NAME):latest +push: + docker push $(IMAGE_NAME):$(IMAGE_VERSION) + docker push $(IMAGE_NAME):latest + diff --git a/docker-compose-demo.yml b/docker-compose-demo.yml index faa6f32..9d8fd27 100644 --- a/docker-compose-demo.yml +++ b/docker-compose-demo.yml @@ -4,11 +4,11 @@ services: build: context: . args: - - GEOSERVER_VERSION=2.22.0 + - GEOSERVER_VERSION=${GS_VERSION} - CORS_ENABLED=true - CORS_ALLOWED_METHODS=GET,POST,PUT,HEAD,OPTIONS ports: - - 80:8080 + - "80:8080" environment: - INSTALL_EXTENSIONS=true - STABLE_EXTENSIONS=wps,csw