Add CORS support
parent
4261b1bdc1
commit
6945df30cb
40
Dockerfile
40
Dockerfile
|
|
@ -5,12 +5,17 @@ ARG GS_VERSION=2.18.1
|
||||||
ARG WAR_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/geoserver-${GS_VERSION}-war.zip
|
ARG WAR_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/geoserver-${GS_VERSION}-war.zip
|
||||||
ARG STABLE_PLUGIN_URL=https://sourceforge.net/projects/geoserver/files/GeoServer/${GS_VERSION}/extensions
|
ARG STABLE_PLUGIN_URL=https://sourceforge.net/projects/geoserver/files/GeoServer/${GS_VERSION}/extensions
|
||||||
|
|
||||||
|
ARG CORS_ENABLED=false
|
||||||
|
ARG CORS_ALLOWED_ORIGINS=*
|
||||||
|
ARG CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,HEAD,OPTIONS
|
||||||
|
ARG CORS_ALLOWED_HEADERS=*
|
||||||
|
|
||||||
# environment variables
|
# environment variables
|
||||||
ENV GS_VERSION=${GS_VERSION} \
|
ENV GS_VERSION=${GS_VERSION} \
|
||||||
WAR_URL=${WAR_URL} \
|
GEOSERVER_DIR=${CATALINA_HOME}/webapps/geoserver \
|
||||||
STABLE_PLUGIN_URL=${STABLE_PLUGIN_URL} \
|
STABLE_PLUGIN_URL=${STABLE_PLUGIN_URL} \
|
||||||
INITIAL_MEMORY="2G" \
|
INITIAL_MEMORY=2G \
|
||||||
MAXIMUM_MEMORY="4G" \
|
MAXIMUM_MEMORY=4G \
|
||||||
JAIEXT_ENABLED=true \
|
JAIEXT_ENABLED=true \
|
||||||
DOWNLOAD_EXTENSIONS=false \
|
DOWNLOAD_EXTENSIONS=false \
|
||||||
STABLE_EXTENSIONS='' \
|
STABLE_EXTENSIONS='' \
|
||||||
|
|
@ -30,10 +35,35 @@ RUN apt update && \
|
||||||
# install geoserver
|
# install geoserver
|
||||||
RUN wget --progress=bar:force:noscroll -c --no-check-certificate "${WAR_URL}" -O /tmp/geoserver.zip && \
|
RUN wget --progress=bar:force:noscroll -c --no-check-certificate "${WAR_URL}" -O /tmp/geoserver.zip && \
|
||||||
unzip /tmp/geoserver.zip geoserver.war -d ${CATALINA_HOME}/webapps && \
|
unzip /tmp/geoserver.zip geoserver.war -d ${CATALINA_HOME}/webapps && \
|
||||||
mkdir -p ${CATALINA_HOME}/webapps/geoserver && \
|
mkdir -p ${GEOSERVER_DIR} && \
|
||||||
unzip -q ${CATALINA_HOME}/webapps/geoserver.war -d ${CATALINA_HOME}/webapps/geoserver && \
|
unzip -q ${CATALINA_HOME}/webapps/geoserver.war -d ${GEOSERVER_DIR} && \
|
||||||
rm ${CATALINA_HOME}/webapps/geoserver.war
|
rm ${CATALINA_HOME}/webapps/geoserver.war
|
||||||
|
|
||||||
|
# configure CORS (inspired by https://github.com/oscarfonts/docker-geoserver)
|
||||||
|
RUN if [ "$CORS_ENABLED" = "true" ]; then \
|
||||||
|
sed -i "\:</web-app>:i\ \
|
||||||
|
<filter>\n\ \
|
||||||
|
<filter-name>CorsFilter</filter-name>\n\ \
|
||||||
|
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>\n\ \
|
||||||
|
<init-param>\n\ \
|
||||||
|
<param-name>cors.allowed.origins</param-name>\n\ \
|
||||||
|
<param-value>${CORS_ALLOWED_ORIGINS}</param-value>\n\ \
|
||||||
|
</init-param>\n\ \
|
||||||
|
<init-param>\n\ \
|
||||||
|
<param-name>cors.allowed.methods</param-name>\n\ \
|
||||||
|
<param-value>${CORS_ALLOWED_METHODS}</param-value>\n\ \
|
||||||
|
</init-param>\n\ \
|
||||||
|
<init-param>\n\ \
|
||||||
|
<param-name>cors.allowed.headers</param-name>\n\ \
|
||||||
|
<param-value>${CORS_ALLOWED_HEADERS}</param-value>\n\ \
|
||||||
|
</init-param>\n\ \
|
||||||
|
</filter>\n\ \
|
||||||
|
<filter-mapping>\n\ \
|
||||||
|
<filter-name>CorsFilter</filter-name>\n\ \
|
||||||
|
<url-pattern>/*</url-pattern>\n\ \
|
||||||
|
</filter-mapping>" "${GEOSERVER_DIR}/WEB-INF/web.xml"; \
|
||||||
|
fi
|
||||||
|
|
||||||
# copy scripts
|
# copy scripts
|
||||||
COPY scripts /scripts
|
COPY scripts /scripts
|
||||||
RUN chmod +x /scripts/*.sh
|
RUN chmod +x /scripts/*.sh
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,14 @@ services:
|
||||||
geoserver:
|
geoserver:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
|
args:
|
||||||
|
- CORS_ENABLED=true
|
||||||
|
- CORS_ALLOWED_METHODS=GET,POST,PUT,HEAD,OPTIONS
|
||||||
ports:
|
ports:
|
||||||
- 8080:8080
|
- 8080:8080
|
||||||
environment:
|
environment:
|
||||||
- DOWNLOAD_EXTENSIONS=true
|
- DOWNLOAD_EXTENSIONS=true
|
||||||
- STABLE_EXTENSIONS=wps
|
- STABLE_EXTENSIONS=wps,csw
|
||||||
- INITIAL_MEMORY=1G
|
- INITIAL_MEMORY=1G
|
||||||
- MAXIMUM_MEMORY=2G
|
- MAXIMUM_MEMORY=2G
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue