### 사내 이미지 저장소 -> *****.*******.com/geoserver/geoserver-2.27.0-jdk11-custom로 push한 과정 #### 1. Git 저장소 클론 ```bash git clone https://gitea.rsonesoft.com/officer/geoserver-custom-dockerized.git cd geoserver-custom-dockerized ```` --- #### 2. Docker 이미지 빌드 - `Dockerfile` 내 버전 부분을 원하는 버전으로 변경한다. - 단, `geoserver`와 `jdk`의 상호 호환은 사전에 체크한다. (최신버전의 `geoserver`는 더이상 `jdk8`을 지원하지 않는다.) ```Dockerfile # * 기존 # ARG BUILDER_BASE_IMAGE=eclipse-temurin:17.0.16_8-jdk-jammy@sha256:6e1d93a802b33182d7a47c98bd2896f4544bdd54d1ed21d9c9d4598c4c1e780a # ARG GEOSERVER_BASE_IMAGE=tomcat:9.0.108-jdk17-temurin-jammy@sha256:b2444115f9cdbf60f2bbbd0edd702834cd310670af888e0861777ff61d5ad113 # 이 부분을 수정하면 내가 원하는 geoserver 버전으로 빌드할 수 있다. # 단, geoserver와 jdk의 버전 관계는 호환체크를 해야한다. (ex: jdk8로 최신 geoserver는 구동할 수 없음.) # 커스텀 ARG BUILDER_BASE_IMAGE=eclipse-temurin:11-jdk-jammy@sha256:591c6360ca4f557e02dbe8cdff8e24512e9ff27ea6815a097a7aff1b287e94c5 ARG GEOSERVER_BASE_IMAGE=tomcat:9.0.108-jdk11-temurin-jammy@sha256:66ce2a63bc9b8b361eb40debb0afd72b7dc06700371c85a794c641d4e4f34f24 ``` - 파일 내 버전 수정을 완료했으면 이미지 빌드 ```bash docker build -t <원격레지스트리>/geoserver/geoserver-2.27.0-jdk11-custom . ``` * `-t` 옵션에 원하는 레포지토리와 태그를 지정합니다. --- #### 3. Docker 이미지 Push ```bash docker push <원격레지스트리>/geoserver/geoserver-2.27.0-jdk11-custom:latest ``` * Push 성공 시 이미지 digest가 출력됩니다. #### 추가) 처리결과 ```sh ⋊> ~/docker on master ⨯ cat Dockerfile 16:20:24 ARG BUILDER_BASE_IMAGE=eclipse-temurin:11-jdk-jammy@sha256:591c6360ca4f557e02dbe8cdff8e24512e9ff27ea6815a097a7aff1b287e94c5 ARG GEOSERVER_BASE_IMAGE=tomcat:9.0.108-jdk11-temurin-jammy@sha256:66ce2a63bc9b8b361eb40debb0afd72b7dc06700371c85a794c641d4e4f34f24 ARG GS_VERSION=2.27.0 ARG BUILD_GDAL=false ARG PROJ_VERSION=9.5.1 ARG GDAL_VERSION=3.10.2 ARG INSTALL_PREFIX=/usr/local # This is a multi stage build. # The gdal_builder image/stage can be enabled by using # `--build-arg BUILD_GDAL=true`. The gdal_builder is derived # from the osgeo/gdal Dockerfile (small ubuntu) and simplified # version activating the JAVA features on top. # It builds gdal from sources, which is necessary to get # working gdal JAVA Bindings, e.g. for the geoserver gdal extension. # see https://trac.osgeo.org/osgeolive/ticket/2288 # # NOTE: the build process can take up to 15 mins on average hardware! FROM $BUILDER_BASE_IMAGE AS gdal_builder ARG BUILD_GDAL ARG PROJ_VERSION ARG GDAL_VERSION ARG INSTALL_PREFIX ENV HOME="/root" USER root # Setup build env for PROJ and GDAL RUN mkdir -p /build_projgrids/usr/ \ mkdir -p /build${INSTALL_PREFIX}/share/proj/ \ mkdir -p /build${INSTALL_PREFIX}/include/\ mkdir -p /build${INSTALL_PREFIX}/bin/ \ mkdir -p /build${INSTALL_PREFIX}/lib/ \ mkdir -p /build/usr/share/bash-completion/ \ mkdir -p /build/usr/share/gdal/ \ mkdir -p /build/usr/include/ \ mkdir -p /build_gdal_python/usr/ \ mkdir -p /build_gdal_version_changing/usr/ \ && if test "${BUILD_GDAL}" = "true"; then \ apt-get update -y \ && apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --fix-missing --no-install-recommends \ # PROJ build dependencies build-essential ca-certificates \ git make ninja-build cmake wget unzip libtool automake \ zlib1g-dev libsqlite3-dev pkg-config sqlite3 libcurl4-openssl-dev \ libtiff-dev patchelf rsync \ # GDAL build dependencies python3-dev python3-numpy python3-setuptools \ libjpeg-dev libgeos-dev \ libexpat-dev libxerces-c-dev \ libwebp-dev libpng-dev \ libdeflate-dev \ libzstd-dev bash zip curl \ libpq-dev libssl-dev libopenjp2-7-dev \ libspatialite-dev \ libmuparser-dev \ autoconf automake sqlite3 bash-completion swig ant bison; \ fi # Build PROJ RUN if test "${BUILD_GDAL}" = "true"; then \ export GCC_ARCH="$(uname -m)" \ && mkdir -p /build_projgrids/${INSTALL_PREFIX}/share/proj \ && curl -LO -fsS http://download.osgeo.org/proj/proj-datumgrid-latest.zip \ && unzip -q -j -u -o proj-datumgrid-latest.zip -d /build_projgrids/${INSTALL_PREFIX}/share/proj \ && rm -f *.zip \ && mkdir proj \ && wget -q https://github.com/OSGeo/PROJ/archive/${PROJ_VERSION}.tar.gz -O - \ | tar xz -C proj --strip-components=1 \ && export PROJ_DB_CACHE_PARAM="" \ && cd proj \ && CFLAGS='-DPROJ_RENAME_SYMBOLS -O2' CXXFLAGS='-DPROJ_RENAME_SYMBOLS -DPROJ_INTERNAL_CPP_NAMESPACE -O2' \ cmake . \ -G Ninja \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DBUILD_TESTING=OFF \ $PROJ_DB_CACHE_PARAM \ && ninja \ && DESTDIR="/build" ninja install \ && cd .. \ && rm -rf proj \ && PROJ_SO=$(readlink -f /build${INSTALL_PREFIX}/lib/libproj.so | awk 'BEGIN {FS="libproj.so."} {print $2}') \ && PROJ_SO_FIRST=$(echo $PROJ_SO | awk 'BEGIN {FS="."} {print $1}') \ && mv /build${INSTALL_PREFIX}/lib/libproj.so.${PROJ_SO} /build${INSTALL_PREFIX}/lib/libinternalproj.so.${PROJ_SO} \ && ln -s libinternalproj.so.${PROJ_SO} /build${INSTALL_PREFIX}/lib/libinternalproj.so.${PROJ_SO_FIRST} \ && ln -s libinternalproj.so.${PROJ_SO} /build${INSTALL_PREFIX}/lib/libinternalproj.so \ && rm /build${INSTALL_PREFIX}/lib/libproj.* \ && ${GCC_ARCH}-linux-gnu-strip -s /build${INSTALL_PREFIX}/lib/libinternalproj.so.${PROJ_SO} \ && for i in /build${INSTALL_PREFIX}/bin/*; do ${GCC_ARCH}-linux-gnu-strip -s $i 2>/dev/null || /bin/true; done \ && patchelf --set-soname libinternalproj.so.${PROJ_SO_FIRST} /build${INSTALL_PREFIX}/lib/libinternalproj.so.${PROJ_SO} \ && for i in /build${INSTALL_PREFIX}/bin/*; do patchelf --replace-needed libproj.so.${PROJ_SO_FIRST} libinternalproj.so.${PROJ_SO_FIRST} $i; done \ fi # Build GDAL RUN if test "${BUILD_GDAL}" = "true"; then \ export GCC_ARCH="$(uname -m)" \ && if test "${GDAL_VERSION}" = "master"; then \ export GDAL_VERSION=$(curl -Ls https://api.github.com/repos/OSGeo/gdal/commits/HEAD -H "Accept: application/vnd.github.VERSION.sha"); \ export GDAL_RELEASE_DATE=$(date "+%Y%m%d"); \ fi \ && if test "${GCC_ARCH}" = "x86_64"; then \ export GDAL_CMAKE_EXTRA_OPTS="-DENABLE_IPO=ON"; \ else \ export GDAL_CMAKE_EXTRA_OPTS=""; \ fi \ && mkdir gdal \ && wget -q https://github.com/OSGeo/gdal/archive/v${GDAL_VERSION}.tar.gz -O - \ | tar xz -C gdal --strip-components=1 \ && cd gdal \ && mkdir build \ && cd build \ && CFLAGS='-DPROJ_RENAME_SYMBOLS -O2' CXXFLAGS='-DPROJ_RENAME_SYMBOLS -DPROJ_INTERNAL_CPP_NAMESPACE -O2 -Wno-psabi' \ cmake .. \ -G Ninja \ -DCMAKE_INSTALL_PREFIX=/usr \ -DGDAL_FIND_PACKAGE_PROJ_MODE=MODULE \ -DPROJ_INCLUDE_DIR="/build${INSTALL_PREFIX-/usr/local}/include" \ -DPROJ_LIBRARY="/build${INSTALL_PREFIX-/usr/local}/lib/libinternalproj.so" \ -DGDAL_USE_TIFF_INTERNAL=ON \ -DGDAL_USE_GEOTIFF_INTERNAL=ON ${GDAL_CMAKE_EXTRA_OPTS} \ -DBUILD_TESTING=OFF \ -DBUILD_JAVA_BINDINGS=ON \ -DGDAL_JAVA_INSTALL_DIR=${INSTALL_PREFIX-/usr/local}/lib \ -DGDAL_JAVA_JNI_INSTALL_DIR=${INSTALL_PREFIX-/usr/local}/lib \ && ninja \ && DESTDIR="/build" ninja install \ && cd .. \ && cd .. \ && rm -rf gdal \ && mkdir -p /build_gdal_python/usr/lib \ && mkdir -p /build_gdal_python/usr/bin \ && mkdir -p /build_gdal_version_changing/usr/include \ && mv /build/usr/lib/python* /build_gdal_python/usr/lib \ && mv /build/usr/lib /build_gdal_version_changing/usr \ && mv /build/usr/include/gdal_version.h /build_gdal_version_changing/usr/include \ && mv /build/usr/bin/*.py /build_gdal_python/usr/bin \ && mv /build/usr/bin /build_gdal_version_changing/usr \ && for i in /build_gdal_version_changing/usr/lib/${GCC_ARCH}-linux-gnu/*; do ${GCC_ARCH}-linux-gnu-strip -s $i 2>/dev/null || /bin/true; done \ && for i in /build_gdal_python/usr/lib/python3/dist-packages/osgeo/*.so; do ${GCC_ARCH}-linux-gnu-strip -s $i 2>/dev/null || /bin/true; done \ && for i in /build_gdal_version_changing/usr/bin/*; do ${GCC_ARCH}-linux-gnu-strip -s $i 2>/dev/null || /bin/true; done \ fi ############################# ############################# ### final GeoServer image ### ############################# ############################# FROM $GEOSERVER_BASE_IMAGE AS geoserver LABEL vendor="osgeo.org" # Build arguments ARG ADDITIONAL_FONTS_PATH=./additional_fonts/ ARG ADDITIONAL_LIBS_PATH=./additional_libs/ ARG BUILD_GDAL ARG COMMUNITY_PLUGIN_URL='' ARG CORS_ALLOWED_HEADERS=Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers ARG CORS_ALLOWED_METHODS=GET,POST,PUT,DELETE,HEAD,OPTIONS ARG CORS_ALLOWED_ORIGINS=* ARG CORS_ALLOW_CREDENTIALS=false ARG CORS_ENABLED=false ARG GS_VERSION ARG GS_BUILD=release ARG GS_DATA_PATH=./geoserver_data/ ARG INSTALL_PREFIX ARG STABLE_PLUGIN_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/extensions ARG WAR_ZIP_URL=https://downloads.sourceforge.net/project/geoserver/GeoServer/${GS_VERSION}/geoserver-${GS_VERSION}-war.zip # Environment variables ENV ADDITIONAL_FONTS_DIR=/opt/additional_fonts/ ENV ADDITIONAL_LIBS_DIR=/opt/additional_libs/ ENV CATALINA_HOME=$CATALINA_HOME ENV COMMUNITY_EXTENSIONS='' ENV COMMUNITY_PLUGIN_URL=$COMMUNITY_PLUGIN_URL ENV CONFIG_DIR=/opt/config ENV CONFIG_OVERRIDES_DIR=/opt/config_overrides ENV CORS_ALLOWED_HEADERS=$CORS_ALLOWED_HEADERS ENV CORS_ALLOWED_METHODS=$CORS_ALLOWED_METHODS ENV CORS_ALLOWED_ORIGINS=$CORS_ALLOWED_ORIGINS ENV CORS_ALLOW_CREDENTIALS=$CORS_ALLOW_CREDENTIALS ENV CORS_ENABLED=$CORS_ENABLED ENV EXTRA_JAVA_OPTS="-Xms256m -Xmx1g" ENV GEOSERVER_BUILD=$GS_BUILD ENV GEOSERVER_DATA_DIR=/opt/geoserver_data/ ENV GEOSERVER_LIB_DIR=$CATALINA_HOME/webapps/geoserver/WEB-INF/lib/ ENV SET_GEOSERVER_REQUIRE_FILE=true ENV GEOSERVER_VERSION=$GS_VERSION ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ENV HEALTHCHECK_URL='' ENV INSTALL_EXTENSIONS=false ENV POSTGRES_JNDI_ENABLED=false ENV ROOT_WEBAPP_REDIRECT=false ENV RUN_UNPRIVILEGED=false ENV RUN_WITH_USER_UID= ENV RUN_WITH_USER_GID= ENV CHANGE_OWNERSHIP_ON_FOLDERS="/opt $GEOSERVER_DATA_DIR" ENV SKIP_DEMO_DATA=false ENV STABLE_EXTENSIONS='' ENV STABLE_PLUGIN_URL=$STABLE_PLUGIN_URL ENV WAR_ZIP_URL=$WAR_ZIP_URL ENV WEBAPP_CONTEXT=geoserver # see https://docs.geoserver.org/stable/en/user/production/container.html ENV CATALINA_OPTS="\$EXTRA_JAVA_OPTS \ --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED \ --add-opens=java.base/java.lang=ALL-UNNAMED \ --add-opens=java.base/java.util=ALL-UNNAMED \ --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \ --add-opens=java.base/java.text=ALL-UNNAMED \ --add-opens=java.desktop/java.awt.font=ALL-UNNAMED \ --add-opens=java.desktop/sun.awt.image=ALL-UNNAMED \ --add-opens=java.naming/com.sun.jndi.ldap=ALL-UNNAMED \ --add-opens=java.desktop/sun.java2d.pipe=ALL-UNNAMED \ -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" WORKDIR /tmp # Install dependencies RUN set -eux \ && export DEBIAN_FRONTEND=noninteractive \ && apt-get update -y \ && apt-get upgrade -y \ && apt-get install -y --no-install-recommends \ # Basic dependencies openssl curl unzip locales gettext gosu \ && if test "${BUILD_GDAL}" = "true"; then \ # PROJ dependencies apt-get install -y --no-install-recommends libsqlite3-0 libtiff5 libcurl4 ca-certificates \ # GDAL dependencies bash-completion python3-numpy libpython3.11 libjpeg-turbo8 libgeos3.10.2 libgeos-c1v5 \ libexpat1 libxerces-c3.2 libwebp7 libpng16-16 libdeflate0 libzstd1 bash libpq5 libssl3 \ libopenjp2-7 libspatialite7 libmuparser2v5 python3-pil python-is-python3; \ fi \ && apt-get clean \ && rm -rf /var/cache/apt/* \ && rm -rf /var/lib/apt/lists/* # install gdal (and proj) # the source directories are empty in case of # BUILD_GDAL=false COPY --from=gdal_builder /build_projgrids/usr/ /usr/ COPY --from=gdal_builder /build${INSTALL_PREFIX}/share/proj/ ${INSTALL_PREFIX}/share/proj/ COPY --from=gdal_builder /build${INSTALL_PREFIX}/include/ ${INSTALL_PREFIX}/include/ COPY --from=gdal_builder /build${INSTALL_PREFIX}/bin/ ${INSTALL_PREFIX}/bin/ COPY --from=gdal_builder /build${INSTALL_PREFIX}/lib/ ${INSTALL_PREFIX}/lib/ COPY --from=gdal_builder /build/usr/share/bash-completion/ /usr/share/bash-completion/ COPY --from=gdal_builder /build/usr/share/gdal/ /usr/share/gdal/ COPY --from=gdal_builder /build/usr/include/ /usr/include/ COPY --from=gdal_builder /build_gdal_python/usr/ /usr/ COPY --from=gdal_builder /build_gdal_version_changing/usr/ /usr/ RUN if test "${BUILD_GDAL}" = "true"; then \ ldconfig; \ echo "source /usr/share/bash-completion/bash_completion" >> /root/.bashrc; \ fi # Download geoserver RUN set -eux \ && 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 \ && rm geoserver.zip \ && echo "Installing GeoServer $GS_VERSION $GS_BUILD" \ && mv /tmp/geoserver $CATALINA_HOME/webapps/geoserver \ && mv $CATALINA_HOME/webapps/geoserver/WEB-INF/lib/marlin-*.jar $CATALINA_HOME/lib/marlin.jar \ && mv $CATALINA_HOME/webapps/geoserver/WEB-INF/lib/postgresql-*.jar $CATALINA_HOME/lib/ \ && mkdir -p $GEOSERVER_DATA_DIR # Copy data and additional libs / fonts COPY $GS_DATA_PATH $GEOSERVER_DATA_DIR COPY $ADDITIONAL_LIBS_PATH $GEOSERVER_LIB_DIR COPY $ADDITIONAL_FONTS_PATH /usr/share/fonts/truetype/ # Add default configs COPY config $CONFIG_DIR # Apply CIS Apache tomcat recommendations regarding server information # * Alter the advertised server.info String (2.1 - 2.3) RUN cd $CATALINA_HOME/lib \ && jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties \ && sed -i 's/Apache Tomcat\/'"${TOMCAT_VERSION}"'/i_am_a_teapot/g' org/apache/catalina/util/ServerInfo.properties \ && sed -i 's/'"${TOMCAT_VERSION}"'/x.y.z/g' org/apache/catalina/util/ServerInfo.properties \ && sed -i 's/^server.built=.*/server.built=/g' org/apache/catalina/util/ServerInfo.properties \ && jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties \ && rm -rf org/apache/catalina/util/ServerInfo.properties # copy scripts COPY *.sh /opt/ # CIS Docker benchmark: Remove setuid and setgid permissions in the images to prevent privilege escalation attacks within containers. RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true # cleanup RUN apt purge -y \ && apt autoremove --purge -y \ && rm -rf /tmp/ \ && rm -rf $CATALINA_HOME/webapps/ROOT \ && rm -rf $CATALINA_HOME/webapps/docs \ && rm -rf $CATALINA_HOME/webapps/examples \ && rm -rf $CATALINA_HOME/webapps/host-manager \ && rm -rf $CATALINA_HOME/webapps/manager # GeoServer user => restrict access to $CATALINA_HOME and GeoServer directories # See also CIS Docker benchmark and docker best practices RUN chmod +x /opt/*.sh && sed -i 's/\r$//' /opt/startup.sh ENTRYPOINT ["bash", "/opt/startup.sh"] WORKDIR /opt EXPOSE 8080 HEALTHCHECK --interval=1m --timeout=20s --retries=3 \ CMD curl --fail --url "$(cat $CATALINA_HOME/conf/healthcheck_url.txt)" || exit 1 ⋊> ~/docker on master ⨯ docker build -t *****.*******.com/geoserver/geoserver-2.27.0-jdk11-custom . 16:20:33 [+] Building 586.0s (35/35) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 14.89kB 0.0s => [internal] load metadata for docker.io/library/tomcat:9.0.108-jdk11-temurin-jammy@sha256:66ce2a63bc9b8b361eb40debb0afd72b7dc06700371c85a794c641d4e4f34f24 0.0s => [internal] load metadata for docker.io/library/eclipse-temurin:11-jdk-jammy@sha256:591c6360ca4f557e02dbe8cdff8e24512e9ff27ea6815a097a7aff1b287e94c5 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 56B 0.0s => [geoserver 1/25] FROM docker.io/library/tomcat:9.0.108-jdk11-temurin-jammy@sha256:66ce2a63bc9b8b361eb40debb0afd72b7dc06700371c85a794c641d4e4f34f24 3.3s => => resolve docker.io/library/tomcat:9.0.108-jdk11-temurin-jammy@sha256:66ce2a63bc9b8b361eb40debb0afd72b7dc06700371c85a794c641d4e4f34f24 0.0s => => sha256:fab304507a151bbd53b083855ec6b558f4adc250ffe29c16e44fc5a0055b3f2f 14.00MB / 14.00MB 1.9s => => sha256:99832bc5c4945f437416b7c99f0a2c41eb2fc796e1592d231752b6d91139a116 138B / 138B 0.9s => => extracting sha256:99832bc5c4945f437416b7c99f0a2c41eb2fc796e1592d231752b6d91139a116 0.0s => => extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0.0s => => extracting sha256:fab304507a151bbd53b083855ec6b558f4adc250ffe29c16e44fc5a0055b3f2f 0.2s => [gdal_builder 1/4] FROM docker.io/library/eclipse-temurin:11-jdk-jammy@sha256:591c6360ca4f557e02dbe8cdff8e24512e9ff27ea6815a097a7aff1b287e94c5 6.8s => => resolve docker.io/library/eclipse-temurin:11-jdk-jammy@sha256:591c6360ca4f557e02dbe8cdff8e24512e9ff27ea6815a097a7aff1b287e94c5 0.0s => => sha256:d3f8521fb6f5632a8d59ceffc3cad5e3f5cc23ff1e77d2574658e166720daa6c 159B / 159B 0.9s => => sha256:54610a5abf09d2d7024df2ab7342f4d4eb41cbf7a4a3f45e8b51211f558c6e83 2.28kB / 2.28kB 0.9s => => sha256:3ced20038d839de95ce9b811571e1b7b0c08afcb3c581a88f2443c81f83dfe96 145.67MB / 145.67MB 5.7s => => sha256:c129b08097e9b5d02181d6092ea38bdd60de96aed18c248a1a24737e0a8d36cf 16.15MB / 16.15MB 1.3s => => sha256:a3be5d4ce40198dc77f17780f02720f55b1898a2368f701dd1619fc9f84aac86 29.54MB / 29.54MB 1.8s => => extracting sha256:a3be5d4ce40198dc77f17780f02720f55b1898a2368f701dd1619fc9f84aac86 0.8s => => extracting sha256:c129b08097e9b5d02181d6092ea38bdd60de96aed18c248a1a24737e0a8d36cf 0.5s => => extracting sha256:3ced20038d839de95ce9b811571e1b7b0c08afcb3c581a88f2443c81f83dfe96 0.9s => => extracting sha256:d3f8521fb6f5632a8d59ceffc3cad5e3f5cc23ff1e77d2574658e166720daa6c 0.0s => => extracting sha256:54610a5abf09d2d7024df2ab7342f4d4eb41cbf7a4a3f45e8b51211f558c6e83 0.0s => [internal] load build context 0.1s => => transferring context: 33.29kB 0.0s => [gdal_builder 2/4] RUN mkdir -p /build_projgrids/usr/ mkdir -p /build/usr/local/share/proj/ mkdir -p /build/usr/local/include/ mkdir -p /build/usr/local/ 0.4s => [geoserver 2/25] WORKDIR /tmp 0.2s => [gdal_builder 3/4] RUN if test "false" = "true"; then export GCC_ARCH="$(uname -m)" && mkdir -p /build_projgrids//usr/local/share/proj && cu 0.6s => [geoserver 3/25] RUN set -eux && export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get upgrade -y && apt-get install -y --no-insta 12.8s => [gdal_builder 4/4] RUN if test "false" = "true"; then export GCC_ARCH="$(uname -m)" && if test "3.10.2" = "master"; then export GDAL_VER 0.5s => [geoserver 4/25] COPY --from=gdal_builder /build_projgrids/usr/ /usr/ 0.0s => [geoserver 5/25] COPY --from=gdal_builder /build/usr/local/share/proj/ /usr/local/share/proj/ 0.0s => [geoserver 6/25] COPY --from=gdal_builder /build/usr/local/include/ /usr/local/include/ 0.1s => [geoserver 7/25] COPY --from=gdal_builder /build/usr/local/bin/ /usr/local/bin/ 0.0s => [geoserver 8/25] COPY --from=gdal_builder /build/usr/local/lib/ /usr/local/lib/ 0.0s => [geoserver 9/25] COPY --from=gdal_builder /build/usr/share/bash-completion/ /usr/share/bash-completion/ 0.0s => [geoserver 10/25] COPY --from=gdal_builder /build/usr/share/gdal/ /usr/share/gdal/ 0.0s => [geoserver 11/25] COPY --from=gdal_builder /build/usr/include/ /usr/include/ 0.0s => [geoserver 12/25] COPY --from=gdal_builder /build_gdal_python/usr/ /usr/ 0.0s => [geoserver 13/25] COPY --from=gdal_builder /build_gdal_version_changing/usr/ /usr/ 0.0s => [geoserver 14/25] RUN if test "false" = "true"; then ldconfig; echo "source /usr/share/bash-completion/bash_completion" >> /root/.bashrc; fi 0.3s => [geoserver 15/25] RUN set -eux && echo "Downloading GeoServer 2.27.0 release" && wget -q -O /tmp/geoserver.zip https://downloads.sourceforge.net/project/g 556.5s => [geoserver 16/25] COPY ./geoserver_data/ /opt/geoserver_data/ 0.1s => [geoserver 17/25] COPY ./additional_libs/ /usr/local/tomcat/webapps/geoserver/WEB-INF/lib/ 0.1s => [geoserver 18/25] COPY ./additional_fonts/ /usr/share/fonts/truetype/ 0.1s => [geoserver 19/25] COPY config /opt/config 0.1s => [geoserver 20/25] RUN cd /usr/local/tomcat/lib && jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties && sed -i 's/Apache Tomcat\/'"9.0.108"' 0.7s => [geoserver 21/25] COPY *.sh /opt/ 0.1s => [geoserver 22/25] RUN find / -perm /6000 -type f -exec chmod a-s {} ; || true 0.8s => [geoserver 23/25] RUN apt purge -y && apt autoremove --purge -y && rm -rf /tmp/ && rm -rf /usr/local/tomcat/webapps/ROOT && rm -rf /usr/local/tomcat/webapp 0.4s => [geoserver 24/25] RUN chmod +x /opt/*.sh && sed -i 's/\r$//' /opt/startup.sh 0.7s => [geoserver 25/25] WORKDIR /opt 0.1s => exporting to image 5.3s => => exporting layers 4.0s => => exporting manifest sha256:ffa7a58af1c22f326eeb7bdb731815d874231d518d5fe084627940f1e3476341 0.0s => => exporting config sha256:1adb5cc1aaf6ecb28b05f9a416c835da4b19527f9deac245f4a70ad53636fdb8 0.0s => => exporting attestation manifest sha256:8a6abaab0c1cd9d62e1845a28fe066b8e8c2d45f8b91e76be763fd30c07bc779 0.0s => => exporting manifest list sha256:1b24e76fd642215d1dc306fc2206216558495d8440552122c560db365732414b 0.0s => => naming to *****.*******.com/geoserver/geoserver-2.27.0-jdk11-custom:latest 0.0s => => unpacking to *****.*******.com/geoserver/geoserver-2.27.0-jdk11-custom:latest 1.1s 2 warnings found (use docker --debug to expand): - SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ARG "CORS_ALLOW_CREDENTIALS") (line 165) - SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "CORS_ALLOW_CREDENTIALS") (line 185) ⋊> ~/docker on master ⨯ docker push *****.*******.com/geoserver/geoserver-2.27.0-jdk11-custom:latest 16:39:11 The push refers to repository [*****.*******.com/geoserver/geoserver-2.27.0-jdk11-custom] 554b4f0680d9: Pushed 51a85d5ab74e: Pushed 35fad3c0c30d: Pushed 3f3a88729652: Pushed d3f8521fb6f5: Pushed 0e7f36ce3230: Pushed ee62cc90c22f: Pushed 4f4fb700ef54: Pushed 54610a5abf09: Pushed 99832bc5c494: Pushed 2644b232d0fc: Pushed dbb9ddeeab5c: Pushed 7ed2f0583184: Pushed be9da5e37cbb: Pushed 1a6ebc15e29d: Pushed fe230fe3caf3: Pushed c129b08097e9: Pushed 3ced20038d83: Pushed 2029ebfc633e: Pushed fab304507a15: Pushed a3be5d4ce401: Pushed a1c04b5beb11: Pushed latest: digest: sha256:1b24e76fd642215d1dc306fc2206216558495d8440552122c560db365732414b size: 856 ```