-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 9a5156a
Showing
652 changed files
with
87,849 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
*.iml | ||
*.idea | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
# Build Instructions | ||
|
||
## How to build a local image? | ||
|
||
```shell | ||
docker build -t {YOUR_TAG} . | ||
``` | ||
|
||
## How to run local build? | ||
|
||
After building run using local tag: | ||
|
||
```shell | ||
docker run -it -p 80:8080 {YOUR_TAG} | ||
``` | ||
|
||
## How to build a specific GeoServer version? | ||
|
||
```shell | ||
docker build \ | ||
--build-arg GS_VERSION={YOUR_VERSION} \ | ||
-t {YOUR_TAG} . | ||
``` | ||
|
||
## How to build with custom geoserver data directory? | ||
|
||
```shell | ||
docker build \ | ||
--build-arg GS_DATA_PATH={RELATIVE_PATH_TO_YOUR_GS_DATA} \ | ||
-t {YOUR_TAG} . | ||
``` | ||
|
||
**Note:** The passed path **must not** be absolute! Instead, the path should be within the build context (e.g. next to the Dockerfile) and should be passed as a relative path, e.g. `GS_DATA_PATH=./my_data/` | ||
|
||
## Can a build use a specific GeoServer version AND custom data? | ||
|
||
Yes! Just pass the `--build-arg` param twice, e.g. | ||
|
||
```shell | ||
docker build \ | ||
--build-arg GS_VERSION={VERSION} \ | ||
--build-arg GS_DATA_PATH={PATH} \ | ||
-t {YOUR_TAG} . | ||
``` | ||
|
||
## How to build with additional libs/extensions/plugins? | ||
|
||
Put your `*.jar` files (e.g. the WPS extension) in the `additional_libs` folder and build with one of the commands from above! (They will be copied to the GeoServer `WEB-INF/lib` folder during the build.) | ||
|
||
**Note:** Similar to the GeoServer data path from above, you can also configure the path to the additional libraries by passing the `ADDITIONAL_LIBS_PATH` argument when building: | ||
|
||
```shell | ||
docker build \ | ||
--build-arg ADDITIONAL_LIBS_PATH={RELATIVE_PATH_TO_YOUR_LIBS} | ||
-t {YOUR_TAG} . | ||
``` | ||
|
||
## How to build from nightly snapshot releases? | ||
|
||
By default ``WAR_ZIP_URL``, ``STABLE_PLUGIN_URL`` make use of sourceforge downloads to obtain official releases. | ||
|
||
Override these arguments to make use of build.geoserver.org nightly releases: | ||
|
||
* ``--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/${GS_VERSION}/geoserver-${GS_VERSION}-latest-war.zip`` | ||
* ``--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/${GS_VERSION}/ext-latest/`` | ||
* ``--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/${GS_VERSION}/community-latest/`` | ||
|
||
Here is a working example for building 2.23.x nightly build:: | ||
``` | ||
docker build --no-cache-filter download,install \ | ||
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/2.23.x/geoserver-2.23.x-latest-war.zip \ | ||
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/2.23.x/ext-latest/ \ | ||
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/2.23.x/community-latest/ \ | ||
--build-arg GS_VERSION=2.23-SNAPSHOT \ | ||
-t 2.23.x . | ||
``` | ||
|
||
When running both stable extensions and community modules can be included: | ||
|
||
``` | ||
docker run -it -p 80:8080 \ | ||
--env INSTALL_EXTENSIONS=true \ | ||
--env STABLE_EXTENSIONS="ysld" \ | ||
--env COMMUNITY_EXTENSIONS="ogcapi" \ | ||
-t 2.23.x | ||
``` | ||
|
||
Community modules are only available for nightly builds as they have not yet met the requirements for production use. Developers have shared these to attract participation, feedback and funding. | ||
|
||
## How to build from main snapshot releases? | ||
|
||
The build.geoserver.org output for the ``main`` branch requires the following: | ||
|
||
* ``--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/main/geoserver-main-latest-war.zip`` | ||
* ``--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/main/ext-latest/`` | ||
* ``--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/main/community-latest/`` | ||
|
||
|
||
Here is a working example for building main branch as 2.24.x build: | ||
|
||
``` | ||
docker build --no-cache-filter download,install \ | ||
--build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/main/geoserver-main-latest-war.zip \ | ||
--build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/main/ext-latest/ \ | ||
--build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/main/community-latest/ \ | ||
--build-arg GS_VERSION=2.24-SNAPSHOT \ | ||
-t 2.24.x . | ||
``` | ||
|
||
When running both [stable extensions](https://build.geoserver.org/geoserver/main/ext-latest/) and [community modules](https://build.geoserver.org/geoserver/main/community-latest/) can be included: | ||
|
||
``` | ||
docker run -it -p 80:8080 \ | ||
--env INSTALL_EXTENSIONS=true \ | ||
--env STABLE_EXTENSIONS="wps,css" \ | ||
--env COMMUNITY_EXTENSIONS="ogcapi-coverages,ogcapi-dggs,ogcapi-features,ogcapi-images,ogcapi-maps,ogcapi-styles,ogcapi-tiled-features,ogcapi-tiles" \ | ||
-t 2.24.x | ||
``` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
FROM ubuntu:22.04 as tomcat | ||
|
||
ARG TOMCAT_VERSION=9.0.75 | ||
ARG CORS_ENABLED=false | ||
ARG CORS_ALLOWED_ORIGINS=* | ||
ARG CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,HEAD,OPTIONS | ||
ARG CORS_ALLOWED_HEADERS=* | ||
|
||
# Environment variables | ||
ENV CATALINA_HOME=/opt/apache-tomcat-${TOMCAT_VERSION} | ||
ENV EXTRA_JAVA_OPTS="-Xms256m -Xmx1g" | ||
ENV CORS_ENABLED=$CORS_ENABLED | ||
ENV CORS_ALLOWED_ORIGINS=$CORS_ALLOWED_ORIGINS | ||
ENV CORS_ALLOWED_METHODS=$CORS_ALLOWED_METHODS | ||
ENV CORS_ALLOWED_HEADERS=$CORS_ALLOWED_HEADERS | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# see https://docs.geoserver.org/stable/en/user/production/container.html | ||
ENV CATALINA_OPTS="\$EXTRA_JAVA_OPTS \ | ||
-Djava.awt.headless=true -server \ | ||
-Dfile.encoding=UTF-8 \ | ||
-Djavax.servlet.request.encoding=UTF-8 \ | ||
-Djavax.servlet.response.encoding=UTF-8 \ | ||
-D-XX:SoftRefLRUPolicyMSPerMB=36000 \ | ||
-Xbootclasspath/a:$CATALINA_HOME/lib/marlin.jar \ | ||
-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/ | ||
|
||
COPY apache-tomcat-9.0.75 /opt/apache-tomcat-9.0.75 | ||
|
||
RUN 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 | ||
|
||
# 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 | ||
|
||
|
||
# cleanup | ||
RUN apt purge -y \ | ||
&& apt autoremove --purge -y \ | ||
&& rm -rf /tmp/* | ||
|
||
FROM tomcat as download | ||
|
||
ARG GS_VERSION=2.23.1 | ||
ARG GS_BUILD=release | ||
ARG WAR_ZIP_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/geoserver-${GS_VERSION}-war.zip | ||
ENV GEOSERVER_VERSION=$GS_VERSION | ||
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 | ||
|
||
FROM tomcat as install | ||
|
||
ARG GS_VERSION=2.23.1 | ||
ARG GS_BUILD=release | ||
ARG STABLE_PLUGIN_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/extensions | ||
ARG COMMUNITY_PLUGIN_URL='' | ||
|
||
ARG GS_DATA_PATH=./geoserver_data/ | ||
ARG ADDITIONAL_LIBS_PATH=./additional_libs/ | ||
ARG ADDITIONAL_FONTS_PATH=./additional_fonts/ | ||
|
||
ENV GEOSERVER_VERSION=$GS_VERSION | ||
ENV GEOSERVER_BUILD=$GS_BUILD | ||
ENV GEOSERVER_DATA_DIR=/opt/geoserver_data/ | ||
ENV GEOSERVER_REQUIRE_FILE=$GEOSERVER_DATA_DIR/global.xml | ||
ENV GEOSERVER_LIB_DIR=$CATALINA_HOME/webapps/geoserver/WEB-INF/lib/ | ||
ENV INSTALL_EXTENSIONS=false | ||
ENV WAR_ZIP_URL=$WAR_ZIP_URL | ||
ENV STABLE_EXTENSIONS='' | ||
ENV STABLE_PLUGIN_URL=$STABLE_PLUGIN_URL | ||
ENV COMMUNITY_EXTENSIONS='' | ||
ENV COMMUNITY_PLUGIN_URL=$COMMUNITY_PLUGIN_URL | ||
ENV ADDITIONAL_LIBS_DIR=/opt/additional_libs/ | ||
ENV ADDITIONAL_FONTS_DIR=/opt/additional_fonts/ | ||
ENV SKIP_DEMO_DATA=false | ||
ENV ROOT_WEBAPP_REDIRECT=false | ||
|
||
WORKDIR /tmp | ||
|
||
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 | ||
|
||
COPY $GS_DATA_PATH $GEOSERVER_DATA_DIR | ||
COPY $ADDITIONAL_LIBS_PATH $GEOSERVER_LIB_DIR | ||
COPY $ADDITIONAL_FONTS_PATH /usr/share/fonts/truetype/ | ||
|
||
# cleanup | ||
RUN rm -rf /tmp/* | ||
|
||
# copy scripts | ||
COPY *.sh /opt/ | ||
RUN chmod +x /opt/*.sh | ||
|
||
ENTRYPOINT ["/opt/startup.sh"] | ||
|
||
WORKDIR /opt |
Oops, something went wrong.