terrestris / docker-geoserver

A basic docker geoserver image with JAI and marlin renderer running on tomcat
22 stars 21 forks source link

feat: move geostyler build to builder #71

Closed simonseyock closed 10 months ago

simonseyock commented 10 months ago

This PR has some build optimizations that result in a way smaller image:

Also as ubuntu kinetic has gone end-of-life, I switched to mantic and a newer grass version

image

simonseyock commented 10 months ago

For anyone who is interested where the build size came from, here is a comparison between layer sizes for the most relevant lines: old

240MB wget -q -O /tmp/geoserver.zip http://downloads.sourceforge.net/project/geoserver/GeoServer/$GEOSERVER_VERSION/geoserver-$GEOSERVER_VERSION-war.zip &&     unzip geoserver.zip geoserver.war -d $CATALINA_HOME/webapps &&     mkdir -p $CATALINA_HOME/webapps/geoserver &&     unzip -q $CATALINA_HOME/webapps/geoserver.war -d $CATALINA_HOME/webapps/geoserver &&     rm $CATALINA_HOME/webapps/geoserver.war &&     mkdir -p $GEOSERVER_DATA_DIR # buildkit
0B mkdir -p ${GEOSERVER_LIB_DIR}tmp_extract # buildkit
6.01MB unzip -q ../gs-web-core-${GEOSERVER_VERSION}.jar # buildkit
30.4kB cat org/geoserver/web/css/minimalistic.css >> org/geoserver/web/css/geoserver.css # buildkit
4.81kB sed -i 's|</wicket:head>|<wicket:link><script type="text/javascript" src="js/modifications.js"></script></wicket:link></wicket:head>|g' org/geoserver/web/GeoServerBasePage.html # buildkit
2.24MB zip -qr9 ../gs-web-core-${GEOSERVER_VERSION}.jar * &&     cd .. &&     rm -rf tmp_extract # buildkit
722MB echo ${GEOSERVER_VERSION} > /tmp/version.txt; echo "2.15.6" >> /tmp/version.txt;     if (test $(sort -V /tmp/version.txt|head -n 1) != "2.15.6"); then         echo "Skipping installation of GeoStyler due to version incompatibility.";     else         echo "Building the GeoStyler extension now. This will take some time. Be patient!" ;         git clone --branch v1.0.0 https://github.com/geostyler/geostyler-geoserver-plugin.git ;         cd geostyler-geoserver-plugin ;         mvn -s "/tmp/settings.xml" -q -B -e -T 2C install ;         cp target/gs-geostyler-1.0.0.jar ${GEOSERVER_LIB_DIR}gs-geostyler-1.0.0.jar ;     fi # buildkit

new

136MB wget -q -O /geoserver-install/geoserver.zip http://downloads.sourceforge.net/project/geoserver/GeoServer/$GEOSERVER_VERSION/geoserver-$GEOSERVER_VERSION-war.zip &&     unzip geoserver.zip geoserver.war -d $CATALINA_HOME/webapps &&     mkdir -p $CATALINA_HOME/webapps/geoserver &&     unzip -q $CATALINA_HOME/webapps/geoserver.war -d $CATALINA_HOME/webapps/geoserver &&     rm $CATALINA_HOME/webapps/geoserver.war &&     mv /tmp/gs-geostyler-1.0.0.jar ${GEOSERVER_LIB_DIR}gs-geostyler-1.0.0.jar &&     mkdir -p $GEOSERVER_DATA_DIR &&     cd $GEOSERVER_LIB_DIR &&     mkdir tmp-extract &&     cd tmp-extract &&     unzip -q ../gs-web-core-${GEOSERVER_VERSION}.jar &&     mv /geoserver-install/minimalistic.css org/geoserver/web/css/minimalistic.css &&     cat org/geoserver/web/css/minimalistic.css >> org/geoserver/web/css/geoserver.css &&     mv /geoserver-install/modifications.js org/geoserver/web/js/modifications.js &&     sed -i 's|</wicket:head>|<wicket:link><script type="text/javascript" src="js/modifications.js"></script></wicket:link></wicket:head>|g' org/geoserver/web/GeoServerBasePage.html &&     zip -qr9 ../gs-web-core-${GEOSERVER_VERSION}.jar * &&     cd / &&     rm -rf geoserver-install # buildkit

The move of the geostyler build saved 722 MB and the removing of the downloaded geoserver jar in the same step saved another 100 MB