| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:cb9335ce6f27399c2b17787739d6675502767c53e0335ded2a5f0d003d996650 in / |
| CMD ["/bin/bash"] |
| ENV JAVA_HOME=/opt/java/openjdk |
| ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 |
| RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl wget gnupg fontconfig ca-certificates p11-kit tzdata locales ; echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen; locale-gen en_US.UTF-8; rm -rf /var/lib/apt/lists/* # buildkit |
| ENV JAVA_VERSION=jdk-21.0.12+8 |
| RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='8a379a67c91a3ae61ffb33d46e0a40c7ba35e70713c4db31cfca30492f792eff'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12%2B8/OpenJDK21U-jre_x64_linux_hotspot_21.0.12_8.tar.gz'; ;; arm64) ESUM='5f9c96b656827b9d14ebeda7739e25be554fa6d25669b03847c1df6e869c0679'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12%2B8/OpenJDK21U-jre_aarch64_linux_hotspot_21.0.12_8.tar.gz'; ;; ppc64el) ESUM='fe1b73886269d589336532c31c0db0d01ac7cd567313cfe3e76f02b37b58c068'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12%2B8/OpenJDK21U-jre_ppc64le_linux_hotspot_21.0.12_8.tar.gz'; ;; riscv64) ESUM='e1fabd17fd266409221323a754b0a5467a0bdc118b06302646f7b795cd49d95a'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12%2B8/OpenJDK21U-jre_riscv64_linux_hotspot_21.0.12_8.tar.gz'; ;; s390x) ESUM='2ec0aecaec755ffa8c7904983f89873e51c28e683de39946ba49496acae8fe96'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12%2B8/OpenJDK21U-jre_s390x_linux_hotspot_21.0.12_8.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit |
| RUN /bin/sh -c set -eux; echo "Verifying install ..."; echo "java --version"; java --version; echo "Complete." # buildkit |
| COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit |
| ENTRYPOINT ["/__cacert_entrypoint.sh"] |
| ENV CATALINA_HOME=/usr/local/tomcat |
| ENV PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN /bin/sh -c mkdir -p "$CATALINA_HOME" # buildkit |
| WORKDIR /usr/local/tomcat |
| ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib |
| ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib |
| ENV TOMCAT_MAJOR=10 |
| ENV TOMCAT_VERSION=10.1.59 |
| ENV TOMCAT_SHA512=992a8e88fc9c0338445f018a1e4a2757c9e71708dba795e2864c9b1613f2b3b9b19c048e787682deae6d6bff9971defc746e31282085d52ef1d32192e09f7a0f |
| COPY /usr/local/tomcat /usr/local/tomcat # buildkit |
| RUN /bin/sh -c set -eux; apt-get update; xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; rm -rf /var/lib/apt/lists/* # buildkit |
| RUN /bin/sh -c set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi # buildkit |
| EXPOSE map[8080/tcp:{}] |
| ENTRYPOINT [] |
| CMD ["catalina.sh" "run"] |
| LABEL org.opencontainers.image.authors=XWiki Development Team <committers@xwiki.org> |
| LABEL org.opencontainers.image.url=https://hub.docker.com/_/xwiki |
| LABEL org.opencontainers.image.documentation=https://hub.docker.com/_/xwiki |
| LABEL org.opencontainers.image.source=https://github.com/xwiki/xwiki-docker.git |
| LABEL org.opencontainers.image.vendor=xwiki.org |
| LABEL org.opencontainers.image.licenses=LGPL-2.1 |
| RUN /bin/sh -c set -eux; apt-get update; apt-get --no-install-recommends -y install curl unzip procps libxtst6 libxi6 libxinerama1 libdbus-glib-1-2 libcairo2 libcups2 libsm6 libx11-xcb1 libnss3 libxml2 libxslt1.1; rm -rf /var/lib/apt/lists/* # buildkit |
| ENV CURL_OPTIONS=-fSL --retry 5 --retry-all-errors --retry-delay 5 --connect-timeout 30 |
| ENV LIBREOFFICE_VERSION=26.2.5 |
| ENV LIBREOFFICE_SHA256_AMD64=2f03bfb2ac9f33ea7c77331b4b7a23300fb0ed7443566046bf8b5bc51c1bed1e |
| ENV LIBREOFFICE_SHA256_ARM64=0e72aa19d216f54100389b8b7840e2d1212470d88fddddb1dae9993d06d7e4ec |
| ENV LIBREOFFICE_URL_PREFIX=https://download.documentfoundation.org/libreoffice/stable/26.2.5/deb |
| RUN /bin/sh -c set -eux; LO_ARCH="$(dpkg --print-architecture)"; case "$LO_ARCH" in amd64) LO_ARCH_DIR=x86_64; LO_ARCH_FILE=x86-64; LO_SHA256=$LIBREOFFICE_SHA256_AMD64 ;; arm64) LO_ARCH_DIR=aarch64; LO_ARCH_FILE=aarch64; LO_SHA256=$LIBREOFFICE_SHA256_ARM64 ;; *) echo "Unsupported architecture [$LO_ARCH] for the LibreOffice installation" >&2; exit 1 ;; esac; LO_ARCHIVE="LibreOffice_${LIBREOFFICE_VERSION}_Linux_${LO_ARCH_FILE}_deb.tar.gz"; curl $CURL_OPTIONS "${LIBREOFFICE_URL_PREFIX}/${LO_ARCH_DIR}/${LO_ARCHIVE}" -o /tmp/libreoffice.tar.gz; echo "$LO_SHA256 */tmp/libreoffice.tar.gz" | sha256sum --strict -c -; mkdir -p /tmp/libreoffice; tar -C /tmp/libreoffice -xf /tmp/libreoffice.tar.gz; dpkg -i /tmp/libreoffice/LibreOffice_${LIBREOFFICE_VERSION}*_Linux_*_deb/DEBS/*.deb; ln -fns "/opt/libreoffice${LIBREOFFICE_VERSION%.*}" /opt/libreoffice; test -x /opt/libreoffice/program/soffice; rm -rf /tmp/libreoffice /tmp/libreoffice.tar.gz # buildkit |
| ENV XWIKI_VERSION=18.7.0 |
| ENV XWIKI_URL_PREFIX=https://maven.xwiki.org/releases/org/xwiki/platform/xwiki-platform-distribution-war/18.7.0 |
| ENV XWIKI_DOWNLOAD_SHA256=a7241fae987376b568a45494f11b034df9b155ba516d2ab0b20b5212a95803b9 |
| RUN /bin/sh -c set -eux; rm -rf /usr/local/tomcat/webapps/*; mkdir -p /usr/local/tomcat/temp; mkdir -p /usr/local/xwiki/data; curl $CURL_OPTIONS "${XWIKI_URL_PREFIX}/xwiki-platform-distribution-war-${XWIKI_VERSION}.war" -o xwiki.war; echo "$XWIKI_DOWNLOAD_SHA256 *xwiki.war" | sha256sum --strict -c -; unzip -d /usr/local/tomcat/webapps/ROOT xwiki.war; rm -f xwiki.war # buildkit |
| ENV POSTGRES_JDBC_VERSION=42.7.13 |
| ENV POSTGRES_JDBC_SHA256=6e0e4cc2d8cae902084f8a2b18728b073a6fd9d1f87c9d8bff8f298c18185b93 |
| ENV POSTGRES_JDBC_PREFIX=https://repo1.maven.org/maven2/org/postgresql/postgresql/42.7.13 |
| ENV POSTGRES_JDBC_ARTIFACT=postgresql-42.7.13.jar |
| ENV POSTGRES_JDBC_TARGET=/usr/local/tomcat/webapps/ROOT/WEB-INF/lib/postgresql-42.7.13.jar |
| RUN /bin/sh -c set -eux; curl $CURL_OPTIONS "${POSTGRES_JDBC_PREFIX}/${POSTGRES_JDBC_ARTIFACT}" -o $POSTGRES_JDBC_TARGET; echo "$POSTGRES_JDBC_SHA256 *$POSTGRES_JDBC_TARGET" | sha256sum --strict -c - # buildkit |
| COPY tomcat/setenv.sh /usr/local/tomcat/bin/ # buildkit |
| COPY xwiki/hibernate.cfg.xml /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml # buildkit |
| COPY xwiki/logback-filelog-appender.xml xwiki/logback-filelog-ref.xml /tmp/ # buildkit |
| RUN /bin/sh -c set -eux; LOGBACK=/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/logback.xml; sed -e '/<configuration/r /tmp/logback-filelog-appender.xml' -e '/ref="stdout"/r /tmp/logback-filelog-ref.xml' "$LOGBACK" > "$LOGBACK.new"; mv "$LOGBACK.new" "$LOGBACK"; rm -f /tmp/logback-filelog-appender.xml /tmp/logback-filelog-ref.xml # buildkit |
| RUN /bin/sh -c sed -i 's/<id>org.xwiki.platform:xwiki-platform-distribution-war</<id>org.xwiki.platform:xwiki-platform-distribution-docker</' /usr/local/tomcat/webapps/ROOT/META-INF/extension.xed # buildkit |
| COPY xwiki/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh # buildkit |
| VOLUME [/usr/local/xwiki] |
| ENTRYPOINT ["docker-entrypoint.sh"] |
| CMD ["xwiki"] |
| ARG OIDC_VERSION |
| LABEL com.synthonyx.xwiki.oidc-authenticator-version="${OIDC_VERSION}" |
| COPY dir:7f630715f1243e2d80a43102a7dd3983fcea1aea47f3251de7b274b90248ef49 in /tmp/oidc-lib/ |
| |1 OIDC_VERSION=2.25.4 /bin/sh -c set -eu; LIB=/usr/local/tomcat/webapps/ROOT/WEB-INF/lib; bundled="$(ls "$LIB" | sed -E 's/-[0-9].*\.jar$//' | sort -u)"; for jar in /tmp/oidc-lib/*.jar; do stem="$(basename "$jar" | sed -E 's/-[0-9].*\.jar$//')"; case "$stem" in xwiki-platform-*|xwiki-commons-*|xwiki-rendering-*) echo "skip (XWiki platform jar — supplied by the WAR): $(basename "$jar")"; continue;; esac; if printf '%s\n' "$bundled" | grep -qx "$stem"; then echo "skip (already in WAR): $(basename "$jar")"; else cp "$jar" "$LIB/"; echo "add: $(basename "$jar")"; fi; done; rm -rf /tmp/oidc-lib |
| COPY file:e62ce47bea4c187197806f670caaee70306aa83ae869aa1bb909ede1aa2da7c2 in /usr/local/tomcat/webapps/ROOT/skins/flamingo/less/custom.less |
| COPY file:b0b84f2937a849bbc39ab07e6a90c2a4b4ec63d54b011f47815a08d191cc7c9b in /usr/local/tomcat/webapps/ROOT/skins/flamingo/logo.svg |
| COPY file:31e9c05dc571e18748f4c75d967e1e5f7c209aaca4453fd647c380c8575c6790 in /usr/local/tomcat/webapps/ROOT/resources/icons/xwiki/favicon.svg |
| COPY file:06f8e5bbcd1e12bc887fc5a718857f0afe90b8630367383a6c4f344ac193e4e8 in /usr/local/tomcat/webapps/ROOT/resources/icons/xwiki/favicon16.png |
| COPY file:b04d5cbdc74917fc303d88d2bf6af6a4b6337fb69fb7dfd19cefb4c68869e9bb in /usr/local/tomcat/webapps/ROOT/resources/icons/xwiki/favicon144.png |
| |1 OIDC_VERSION=2.25.4 /bin/sh -c set -eu; HH=/usr/local/tomcat/webapps/ROOT/skins/flamingo/htmlheader.vm; grep -q 'XWiki - $escapetool.xml($!doc.space)' "$HH"; sed -i 's#XWiki - $escapetool.xml($!doc.space) - $escapetool.xml($!tdoc.displayTitle)#$escapetool.xml($!tdoc.displayTitle) - Wiki | Synthonyx Suite#' "$HH"; grep -q 'Wiki | Synthonyx Suite' "$HH" |