Commit 573cb849 authored by Ignacio's avatar Ignacio
Browse files

Añade conector APR utilizando imagen de compilación

parent 47ae64f5
Loading
Loading
Loading
Loading
+89 −24
Original line number Diff line number Diff line
FROM openweb/oracle-tomcat:8.5-jre8
FROM sgrio/java-oracle:jdk_8 AS build_apr

ENV APR_VERSION="1.6.5" \
	TOMCAT_NATIVE_VERSION="1.2.18" \
	TEMP_PATH="/tmp/resources"

RUN apt-get update && \
	apt-get install -y --no-install-recommends \
		build-essential \
		openssl \
		libssl-dev \
		curl && \
	rm -rf /var/lib/apt/lists/* && \
	mkdir -p "${TEMP_PATH}" && \
	#
	# Install APR
	#
	APR_FILENAME="apr-${APR_VERSION}.tar.gz" && \
	URL="http://www.us.apache.org/dist/apr/${APR_FILENAME}" && \
	curl -L ${URL} --output ${TEMP_PATH}/${APR_FILENAME} && \
	tar xvfz "${TEMP_PATH}/${APR_FILENAME}" -C ${TEMP_PATH} && \
	ls -la ${TEMP_PATH} && \
	cd "${TEMP_PATH}/apr-${APR_VERSION}" && \
	./configure --prefix=/usr/local/apr && \
	make && \
	make install && \
	#
	# Install Tomcat native
	#
	FILENAME="tomcat-native-${TOMCAT_NATIVE_VERSION}-src.tar.gz" && \
	URL="https://archive.apache.org/dist/tomcat/tomcat-connectors/native/${TOMCAT_NATIVE_VERSION}/source/${FILENAME}" && \
	curl -L ${URL} --output ${TEMP_PATH}/${FILENAME} && \
	tar xvfz ${TEMP_PATH}/${FILENAME} -C ${TEMP_PATH} && \
	cd "${TEMP_PATH}/tomcat-native-${TOMCAT_NATIVE_VERSION}-src/native" && \
	./configure --with-apr=/usr/local/apr && \
	make && \
	make install


FROM sgrio/java-oracle:jre_8

LABEL maintainer="info@redmic.es"

ENV DEBIAN_FRONTEND="noninteractive" \
	GEOSERVER_PLUGINS="css inspire libjpeg-turbo csw wps pyramid vectortiles netcdf gdal importer netcdf-out" \
	GEOSERVER_COMMUNITY_PLUGINS="" \
ENV MARLIN_VERSION="0.9.3" \
	TOMCAT_MAJOR="8" \
	TOMCAT_VERSION="8.5.35" \
	JAI_VERSION="1_1_3" \
	IMAGE_IO_VERSION="1_1" \
	GDAL_VERSION="2.2.3" \
	TURBO_JPEG_VERSION="1.5.3" \
	GEOSERVER_MAJOR_VERSION="2.14" \
	GEOSERVER_MINOR_VERSION="1" \
	CATALINA_HOME="/usr/local/tomcat"

ENV GEOSERVER_HOME="${CATALINA_HOME}/webapps/geoserver"

ENV GEOSERVER_PLUGINS="css inspire libjpeg-turbo csw wps pyramid vectortiles netcdf gdal netcdf-out" \
	GEOSERVER_COMMUNITY_PLUGINS="" \
	GEOSERVER_VERSION="${GEOSERVER_MAJOR_VERSION}.${GEOSERVER_MINOR_VERSION}" \
	GEOSERVER_DATA_DIR="/var/geoserver/data" \
	GEOSERVER_HOME="${CATALINA_HOME}/webapps/geoserver" \
	GEOSERVER_LOG_DIR="/var/log/geoserver" \
	GEOSERVER_LOG_LOCATION="${GEOSERVER_LOG_DIR}/geoserver.log" \
	GEOSERVER_OPTS="-Djava.awt.headless=true \
		-server \
		-XX:PerfDataSamplingInterval=500 \
@@ -23,33 +73,31 @@ ENV DEBIAN_FRONTEND="noninteractive" \
		-XX:+UnlockExperimentalVMOptions \
		-XX:+AggressiveOpts \
		-XX:+UseCGroupMemoryLimitForHeap \
		-Djava.library.path=/usr/share/java:/opt/libjpeg-turbo/lib64:/usr/lib/jni" \
		-Xbootclasspath/a:${GEOSERVER_HOME}/WEB-INF/lib/marlin-${MARLIN_VERSION}-Unsafe.jar \
		-Dsun.java2d.renderer=org.marlin.pisces.MarlinRenderingEngine \
		-Djava.library.path=/usr/share/java:/opt/libjpeg-turbo/lib64:/usr/lib/jni:/usr/local/apr/lib:/usr/lib" \
	GEOSERVER_PORT="8080" \
	GOOGLE_FONTS="Open%20Sans Roboto Lato Ubuntu" \
	NOTO_FONTS="NotoSans-unhinted NotoSerif-unhinted NotoMono-hinted" \
	GDAL_DATA="/usr/share/gdal/2.1" \
	GDAL_VERSION="2.1.2" \
	TURBO_JPEG_VERSION="1.5.3" \
	GDAL_DATA="/usr/share/gdal/2.2" \
	TEMP_PATH="/tmp/resources" \
	MARLIN_VERSION="0.9.3" \
	JAI_VERSION="1_1_3" \
	IMAGE_IO_VERSION="1_1"

ENV GEOSERVER_VERSION="${GEOSERVER_MAJOR_VERSION}.${GEOSERVER_MINOR_VERSION}" \
	GEOSERVER_LOG_LOCATION="${GEOSERVER_LOG_DIR}/geoserver.log" \
	# El espacio final es necesario, corrige bug en script de arranque
	MARLIN_JAR="${GEOSERVER_HOME}/lib/marlin-${MARLIN_VERSION}-Unsafe.jar "
	JRE_HOME="" \
	PATH="${CATALINA_HOME}/bin:${PATH}"

COPY ./scripts /

RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \
RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" "${CATALINA_HOME}" && \
	cd ${CATALINA_HOME} && \
	apt-get update && \
	apt-get install -y --no-install-recommends \
		fonts-cantarell \
		openssl \
		unzip \
		libtcnative-1 \
		libgdal-java \
		libnetcdf11 \
		libgdal20 \
		libgdal-dev \
		libnetcdf13 \
		libnetcdf-c++4 \
		netcdf-bin \
		dnsutils && \
@@ -72,8 +120,13 @@ RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \
		unzip -o ${TEMP_PATH}/${FONT}.zip -d /usr/share/fonts/truetype/${FONT} ; \
	done && \
	#
	# Clean Tomcat
	# Install Tomcat
	#
	URL="https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz" && \
	curl -fSL "${URL}" -o tomcat.tar.gz && \
	tar -xvf tomcat.tar.gz --strip-components=1 && \
	rm bin/*.bat && \
	rm tomcat.tar.gz* && \
	rm -rf ${CATALINA_HOME}/webapps/* && \
	#
	# Install GeoServer
@@ -94,9 +147,10 @@ RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \
	# Install Marlin
	#
	FILENAME=$(echo "marlin-${MARLIN_VERSION}-Unsafe.jar") && \
	URL="https://github.com/bourgesl/marlin-renderer/releases/download/v0_9_1//${FILENAME}" && \
	MARLIN_VERSION_DASH=$(echo "v${MARLIN_VERSION}" | tr "." "_") && \
	URL="https://github.com/bourgesl/marlin-renderer/releases/download/${MARLIN_VERSION_DASH}/${FILENAME}" && \
	curl -L ${URL} --output ${TEMP_PATH}/${FILENAME} && \
	cp ${TEMP_PATH}/${FILENAME} ${GEOSERVER_HOME}/lib && \
	cp ${TEMP_PATH}/${FILENAME} ${GEOSERVER_HOME}/WEB-INF/lib && \
	#
	# Install Turbo JPEG
	#
@@ -105,7 +159,7 @@ RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \
	curl -L ${URL} --output ${TEMP_PATH}/${TURBO_JPEG_FILENAME} && \
	dpkg -i ${TEMP_PATH}/${TURBO_JPEG_FILENAME} && \
	#
	# Install JAI & Image IO
	# Install JAI
	#
	rm ${GEOSERVER_HOME}/WEB-INF/lib/jai_*jar && \
	JAI_FILENAME=$(echo "jai-${JAI_VERSION}-lib-linux-amd64.tar.gz") && \
@@ -114,6 +168,9 @@ RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \
	tar xvfz ${TEMP_PATH}/${JAI_FILENAME} -C ${TEMP_PATH} && \
	mv ${TEMP_PATH}/jai-${JAI_VERSION}/lib/*.jar ${JAVA_HOME}/lib/ext/ && \
	mv ${TEMP_PATH}/jai-${JAI_VERSION}/lib/*.so ${JAVA_HOME}/lib/amd64/ && \
	#
	# Install Image IO
	#
	IMAGE_IO_FILENAME="jai_imageio-${IMAGE_IO_VERSION}-lib-linux-amd64.tar.gz" && \
	URL="http://download.java.net/media/jai-imageio/builds/release/1.1/${IMAGE_IO_FILENAME}" && \
	curl -L ${URL} --output ${TEMP_PATH}/${IMAGE_IO_FILENAME} && \
@@ -144,6 +201,10 @@ RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \
	ln -s /usr/share/java/gdal.jar \
		"${GEOSERVER_HOME}/WEB-INF/lib/imageio-ext-gdal-bindings-${GDAL_VERSION}.jar" && \
	#
	# Install strong cryptography
	#
	mv /libs/*.jar ${JAVA_HOME}/lib/security/ && \
	#
	# Clean
	#
	rm -rf ${TEMP_PATH} && \
@@ -151,6 +212,10 @@ RUN mkdir -p "${TEMP_PATH}" "${GEOSERVER_DATA_DIR}" "${GEOSERVER_LOG_DIR}" && \

EXPOSE ${GEOSERVER_PORT}

RUN mv /libs/*.jar ${JAVA_HOME}/lib/security/
COPY --from=build_apr /usr/local/apr/lib /usr/local/apr/lib

WORKDIR ${CATALINA_HOME}

ENTRYPOINT ["/docker-entrypoint.sh"]

CMD ["catalina.sh", "run"]