镜像构建历史
# 2026-06-18 13:21:19 0.00B 设置默认要执行的命令
CMD ["/fmeflow/start_tomcat.sh"]
# 2026-06-18 13:21:19 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/tini" "--" "/fmeflow/fmeflow-web-entrypoint.sh"]
# 2026-06-18 13:21:19 0.00B 声明容器运行时监听的端口
EXPOSE [8080/tcp]
# 2026-06-18 13:21:19 13.85KB 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c cp /usr/local/tomcat/conf/catalina.properties /usr/local/tomcat/conf/catalina.properties.tmp; sed "s%xom-\*.jar%xom-\*.jar,activation-\*.jar,server-fmeserver-api-\*.jar,protobuf-java-\*.jar,clients-webservicesutil-\*.jar,server-internal-api-\*.jar,common-util-\*.jar,clients-cors-filter-\*.jar,commons-compress-\*.jar,common-util-api-\*.jar,jackson-core-asl-\*.jar,json-\*.jar,commons-net-\*.jar,common-ioutil-\*.jar,clients-downloading-common-\*.jar,httpcore-\*.jar,xml-apis-\*.jar,paranamer-\*.jar,reflections-\*.jar,swagger-jersey-jaxrs_\*.jar,swagger-jaxrs_\*.jar,jackson-jaxrs-json-provider-\*.jar,joda-time-\*.jar,jackson-core-\*.jar,jackson-module-jaxb-annotations-\*.jar,guava-\*.jar,jsr311-api-\*.jar,javassist-\*.jar,swagger-core_\*.jar,jackson-databind-\*.jar,jackson-annotations-\*.jar,ojdbc\*.jar,mssql-jdbc-\*.jar,postgresql-\*.jar,unboundid-ldapsdk-\*.jar,server-database-\*.jar,server-handler-\*.jar,dnsjava-\*.jar,jackson-datatype-joda-\*.jar,azure-messaging-eventgrid-\*.jar,okio-\*.jar,okhttp-\*.jar,common-webservices-\*.jar,checker-qual-\*.jar,ion-java-\*.jar,failureaccess-\*.jar,j2objc-annotations-\*.jar,error_prone_annotations-\*.jar,listenablefuture-\*.jar,jakarta.activation-api-\*.jar,jakarta.xml.bind-api-\*.jar,spring-jdbc-\*.jar,netty-codec-http-\*.jar,server-services-spring-\*.jar,zipkin-\*.jar,microsoft-graph-\*.jar,azure-identity-\*.jar,netty-transport-native-epoll-\*.jar,netty-handler-\*.jar,zipkin-reporter-\*.jar,msal4j-persistence-extension-\*.jar,accessors-smart-\*.jar,netty-codec-http2-\*.jar,logback-classic-\*.jar,spring-security-config-\*.jar,spring-webmvc-\*.jar,spring-beans-\*.jar,jna-platform-\*.jar,jakarta.annotation-api-\*.jar,spring-tx-\*.jar,azure-core-\*.jar,tomcat-embed-el-\*.jar,jackson-datatype-jdk8-\*.jar,netty-resolver-dns-\*.jar,brave-instrumentation-http-\*.jar,spring-core-\*.jar,netty-buffer-\*.jar,msal4j-\*.jar,content-type-\*.jar,reactor-core-\*.jar,spring-security-web-\*.jar,netty-codec-\*.jar,stax2-api-\*.jar,spring-context-\*.jar,netty-codec-dns-\*.jar,tomcat-embed-core-\*.jar,jackson-dataformat-xml-\*.jar,netty-common-\*.jar,zipkin-reporter-brave-\*.jar,netty-transport-\*.jar,reactor-netty-\*.jar,nimbus-jose-jwt-\*.jar,netty-resolver-\*.jar,spring-boot-\*.jar,brave-\*.jar,spring-expression-\*.jar,logback-core-\*.jar,reactive-streams-\*.jar,j2objc-annotations-\*.jar,jackson-datatype-jsr310-\*.jar,jul-to-slf4j-\*.jar,woodstox-core-\*.jar,spring-web-\*.jar,spring-security-test-\*.jar,jna-\*.jar,spring-aop-\*.jar,spring-test-\*.jar,spring-boot-autoconfigure-\*.jar,azure-core-http-netty-\*.jar,lang-tag-\*.jar,tomcat-embed-websocket-\*.jar,reactor-netty-core-\*.jar,snakeyaml-\*.jar,jcip-annotations-\*.jar,server-common-spring-\*.jar,javax.mail-\*.jar,microsoft-graph-core-\*.jar,jackson-module-parameter-names-\*.jar,netty-transport-native-unix-common-\*.jar,netty-handler-proxy-\*.jar,spring-security-crypto-\*.jar,gson-\*.jar,spring-security-core-\*.jar,netty-codec-socks-\*.jar,reactor-netty-http-brave-\*.jar,spring-jcl-\*.jar,HikariCP-\*.jar,oauth2-oidc-sdk-\*.jar,spring-boot-jarmode-layertools-\*.jar,reactor-netty-http-\*.jar,opensaml-soap-impl-\*.jar,opensaml-security-api-\*.jar,spring-security-saml2-service-provider-\*.jar,opensaml-core-\*.jar,cryptacular-\*.jar,opensaml-storage-api-\*.jar,opensaml-saml-impl-\*.jar,opensaml-soap-api-\*.jar,metrics-core-\*.jar,opensaml-profile-api-\*.jar,opensaml-xmlsec-impl-\*.jar,opensaml-messaging-api-\*.jar,opensaml-xmlsec-api-\*.jar,opensaml-saml-api-\*.jar,opensaml-security-impl-\*.jar,java-support-\*.jar,velocity-\*.jar,xmlsec-\*.jar,springdoc-openapi-ui-\*.jar,springdoc-openapi-webmvc-core-\*.jar, \springdoc-openapi-common-\*.jar, \jboss-logging-\*.jar,classmate-\*.jar,byte-buddy-\*.jar,spring-plugin-core-\*.jar,classgraph-\*.jar,mapstruct-\*.jar,spring-plugin-metadata-\*.jar,swagger-models-\*.jar,swagger-annotations-\*.jar,swagger-project-\*.jar,swagger-ui-\*.jar,swagger-core-\*.jar,swagger-parser-v3-\*.jar,swagger-parser-safe-url-resolver-\*.jar,swagger-parser-core-\*.jar,jakarta.validation-api-\*.jar,spring-session-core-\*.jar,spring-session-jdbc-\*.jar,httpmime-\*.jar,jakarta.activation-\*.jar,netty-incubator-codec-classes-quic-\*.Final.jar,netty-incubator-codec-native-quic-\*.jar,jedis-\*.jar,common-quartz-\*.jar,caffeine-\*.jar,quartz-\*.jar,jackson-dataformat-yaml-\*.jar,webjars-locator-core-\*.jar,common-enginemanagement-\*.jar,azure-json-\*.jar,azure-xml-\*.jar,annotations-\*.jar,kotlin-stdlib-jdk8-\*.jar,kotlin-stdlib-\*.jar,kotlin-stdlib-jdk7-\*.jar,kotlin-stdlib-common-\*.jar,jsr305-\*.jar,java-jwt-\*.jar,utils-\*.jar,http-client-spi-\*.jar,apache-client-\*.jar,eventstream-\*.jar,aws-core-\*.jar,http-auth-aws-\*.jar,s3-\*.jar,auth-\*.jar,endpoints-spi-\*.jar,protocol-core-\*.jar,aws-query-protocol-\*.jar,sdk-core-\*.jar,http-auth-\*.jar,http-auth-spi-\*.jar,retries-\*.jar,identity-spi-\*.jar,metrics-spi-\*.jar,crt-core-\*.jar,micrometer-commons-\*.jar,netty-nio-client-\*.jar,checksums-spi-\*.jar,aws-xml-protocol-\*.jar,checksums-\*.jar,arns-\*.jar,profiles-\*.jar,http-auth-aws-eventstream-\*.jar,angus-activation-\*.jar,retries-spi-\*.jar,regions-\*.jar,micrometer-observation-\*.jar,third-party-jackson-core-\*.jar,jakarta.el-api-\*.jar,jakarta.servlet.jsp.jstl-api-\*.jar,spring-ai-template-st-\*.jar,validation-api-\*.jar,mcp-json-\*.jar,spring-ai-autoconfigure-mcp-server-webmvc-\*.jar,mcp-annotations-\*.jar,spring-ai-mcp-annotations-\*.jar,spring-ai-starter-mcp-server-webmvc-\*.jar,itu-\*.jar,jtokkit-\*.jar,context-propagation-\*.jar,mcp-core-\*.jar,jsonschema-module-jackson-\*.jar,jackson-module-jsonSchema-\*.jar,ST4-\*.jar,jsonschema-generator-\*.jar,spring-ai-commons-\*.jar,LatencyUtils-\*.jar,mcp-json-jackson2-\*.jar,spring-ai-model-\*.jar,mcp-spring-webmvc-\*.jar,spring-messaging-\*.jar,micrometer-core-\*.jar,spring-ai-autoconfigure-mcp-server-common-\*.jar,jsonschema-module-swagger-2-\*.jar,mcp-\*.jar,HdrHistogram-\*.jar,spring-ai-mcp-\*.jar,shib-velocity-\*.jar,bcpkix-jdk18on-\*.jar,bcprov-jdk18on-\*.jar,bcutil-jdk18on-\*.jar,shib-networking-\*.jar,shib-security-\*.jar,shib-support-\*.jar,httpcore5-\*.jar,metrics-json-\*.jar,httpcore5-h2-\*.jar,springdoc-openapi-starter-webmvc-ui-\*.jar,jspecify-\*.jar,webjars-locator-lite-\*.jar,springdoc-openapi-starter-common-\*.jar,springdoc-openapi-starter-webmvc-api-\*.jar,resilience4j-retry-\*.jar,vavr-\*.jar,resilience4j-core-\*.jar,vavr-match-\*.jar,spring-security-oauth2-jose-\*.jar,spring-security-oauth2-resource-server-\*.jar,spring-security-oauth2-core-\*.jar%g" /usr/local/tomcat/conf/catalina.properties.tmp > /usr/local/tomcat/conf/catalina.properties; rm -f /usr/local/tomcat/conf/catalina.properties.tmp; # buildkit
# 2026-06-18 13:21:19 7.18KB 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.tmp; sed "s%autoDeploy=\"true\"%autoDeploy=\"true\" startStopThreads=\"0\"%g" /usr/local/tomcat/conf/server.xml.tmp > /usr/local/tomcat/conf/server.xml; rm -f /usr/local/tomcat/conf/server.xml.tmp; # buildkit
# 2026-06-18 13:21:19 7.16KB 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.tmp; sed "s%directory=\"logs\"%directory=\"/data/fmeflowdata/resources/logs/tomcat\"%g" /usr/local/tomcat/conf/server.xml.tmp > /usr/local/tomcat/conf/server.xml; rm -f /usr/local/tomcat/conf/server.xml.tmp; # buildkit
# 2026-06-18 13:21:18 4.08KB 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c cp /usr/local/tomcat/conf/logging.properties /usr/local/tomcat/conf/logging.properties.tmp; sed "s%\${catalina.base}/logs%/data/fmeflowdata/resources/logs/tomcat%g" /usr/local/tomcat/conf/logging.properties.tmp > /usr/local/tomcat/conf/logging.properties; rm -f /usr/local/tomcat/conf/logging.properties.tmp; # buildkit
# 2026-06-18 13:21:18 0.00B 设置环境变量 COREHOSTNAME WEBSERVERHOSTNAME WEBSOCKETHOSTNAME EXTERNALHOSTNAME EXTERNALPORT WEBPROTOCOL HIDEHOSTCONTENT MAXTHREADS PGSQLCOMMENT PGSQLHOSTNAME PGSQLPORT PGSQLDATABASENAME PGSQLUSERNAME PGSQLPASSWORD SQLSERVERDATABASENAME SQLSERVERUSERNAME SQLSERVERPASSWORD SQLSERVERCOMMENT SQLSERVERHOSTNAME SQLSERVERPORT SQLSERVERINSTANCENAME ORACLEUSERNAME ORACLEPASSWORD ORACLECOMMENT ORACLEHOSTNAME ORACLEPORT ORACLESID POSTGRESQLSSL REMOTEENGINE
ENV COREHOSTNAME=fmeflowcore WEBSERVERHOSTNAME=fmeflowweb WEBSOCKETHOSTNAME=fmeflowwebsocket EXTERNALHOSTNAME=localhost EXTERNALPORT=443 WEBPROTOCOL=https HIDEHOSTCONTENT=true MAXTHREADS=200 PGSQLCOMMENT= PGSQLHOSTNAME=fmeflowdb PGSQLPORT=5432 PGSQLDATABASENAME=fmeflow PGSQLUSERNAME=fmeflow PGSQLPASSWORD=fmeflow SQLSERVERDATABASENAME=fmeflow SQLSERVERUSERNAME=fmeflow SQLSERVERPASSWORD=$FME$1ser$ver SQLSERVERCOMMENT=# SQLSERVERHOSTNAME=localhost SQLSERVERPORT=1433 SQLSERVERINSTANCENAME= ORACLEUSERNAME=fmeflow ORACLEPASSWORD=fmeflow ORACLECOMMENT=# ORACLEHOSTNAME=localhost ORACLEPORT=1521 ORACLESID=orcl POSTGRESQLSSL=false REMOTEENGINE=false
# 2026-06-18 13:21:18 0.00B 指定运行容器时使用的用户
USER fmeflow
# 2026-06-18 13:21:18 167.88KB 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c CACERTS="${JAVA_HOME:-$(java -XshowSettings:properties 2>&1 | awk '/java\.home = / {print $3}')}/lib/security/cacerts" && chown fmeflow:0 "$CACERTS" && chmod ug+w "$CACERTS" # buildkit
# 2026-06-18 13:21:18 1.56GB 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c chown -R fmeflow /opt/fmeflow /data /usr/local/tomcat /fmeflow && chgrp -R 0 /opt/fmeflow /data /usr/local/tomcat /fmeflow && chmod -R g+rwX /opt/fmeflow /data /usr/local/tomcat /fmeflow # buildkit
# 2026-06-18 13:20:51 830.32MB 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c /usr/local/tomcat/bin/catalina.sh start && echo "Deploying webapps..." && until fgrep -q "Server startup in" `ls -1 -St /usr/local/tomcat/logs/catalina* | head -1`; do echo "..." && sleep 10; done && /usr/local/tomcat/bin/catalina.sh stop # buildkit
# 2026-06-18 13:19:49 120.00B 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c mkdir /usr/local/tomcat/webapps/ROOT || true && echo "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=fmeserver\">\n </head>\n</html>" > /usr/local/tomcat/webapps/ROOT/index.jsp # buildkit
# 2026-06-18 13:19:49 285.48KB 复制新文件或目录到容器中
COPY favicon.ico /usr/local/tomcat/webapps/ROOT/favicon.ico # buildkit
# 2026-06-18 13:19:49 0.00B 执行命令并创建新的镜像层
RUN |1 BUILD_DATE=20260617 /bin/sh -c chmod +x /opt/fmeflow/Config/confd/confd # buildkit
# 2026-06-18 13:19:49 8.27KB 复制文件或目录到容器中
ADD server.xml.tmpl /opt/fmeflow/Config/confd/templates/Utilities/tomcat/conf/server.xml.tmpl # buildkit
# 2026-06-18 13:19:49 210.00B 复制文件或目录到容器中
ADD Utilitiestomcatconfserver.xml.toml /opt/fmeflow/Config/confd/conf.d/Utilitiestomcatconfserver.xml.toml # buildkit
# 2026-06-18 13:19:49 0.00B 设置环境变量 INSTALLDIR SECURITYCLUSTER ENABLESECURITY FMEFLOWNAME PLATFORM ADMINUSERNAME ZIPCODEPAGE CODEPAGE CHUNKEDTRANSFERENCODING UMASK WEBAPPSDIR REPOSITORYSERVERROOTDIR FMEFLOWREQUESTPORT SCHEDULERPORT PROCESSMONITORADMINPORTCORE FMECONFIGREQUESTPORT WEBSOCKETPORT NOTIFIERREQUESTPORT RELAYERREQUESTPORT MOUNTPOINTREQUESTPORT CONNECTIONREQUESTPORT SERVLETPORT JAVA JAVA_OPTS CATALINA_TMPDIR ENVFILE WEBSOCKETSERVERPORTCOMMENT FMEFLOWBUILD BUILDNUM FMEFULLVERSION COPYRIGHT REDISPASSWORD
ENV INSTALLDIR=/opt/fmeflow SECURITYCLUSTER=DEFAULT ENABLESECURITY=true FMEFLOWNAME=FME Flow PLATFORM=linux-x64 ADMINUSERNAME=admin ZIPCODEPAGE=CP437 CODEPAGE=UTF-8 CHUNKEDTRANSFERENCODING=upload UMASK=0022 WEBAPPSDIR=/usr/local/tomcat/webapps REPOSITORYSERVERROOTDIR=/data/fmeflowdata FMEFLOWREQUESTPORT=7071 SCHEDULERPORT=7073 PROCESSMONITORADMINPORTCORE=7501 FMECONFIGREQUESTPORT=7077 WEBSOCKETPORT=7078 NOTIFIERREQUESTPORT=7072 RELAYERREQUESTPORT=7075 MOUNTPOINTREQUESTPORT=7079 CONNECTIONREQUESTPORT=7069 SERVLETPORT=8080 JAVA=/usr/bin/java JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom CATALINA_TMPDIR=/data/fmeflowdata/resources/system/temp/tomcat ENVFILE=/etc/default/locale WEBSOCKETSERVERPORTCOMMENT= FMEFLOWBUILD=FME Flow 2026.2 - Build 26333 - linux-x64 BUILDNUM=26333 FMEFULLVERSION=2026.2.0.0 COPYRIGHT=Copyright (c) 1994 - 2026, Safe Software Inc. REDISPASSWORD=sozPpbLfgdI9WJoPejNMpSxGw
# 2026-06-18 13:19:49 652.23MB 复制新文件或目录到容器中
COPY --chown=fmeflow:fmeflow WEBAPPSDIR/ /usr/local/tomcat/webapps/ # buildkit
# 2026-06-18 13:19:45 40.22MB 复制新文件或目录到容器中
COPY --chown=fmeflow:fmeflow INSTALL_DIR/ /opt/fmeflow/ # buildkit
# 2026-06-18 13:19:45 13.77MB 复制新文件或目录到容器中
COPY --chown=fmeflow:fmeflow SHAREDTOMCATLIB/ /usr/local/tomcat/lib/ # buildkit
# 2026-06-18 13:19:45 193.00B 复制文件或目录到容器中
ADD --chown=fmeflow start_tomcat.sh /fmeflow/start_tomcat.sh # buildkit
# 2026-06-18 13:19:45 4.92KB 复制文件或目录到容器中
ADD --chown=fmeflow fmeflow-web-entrypoint.sh /fmeflow/fmeflow-web-entrypoint.sh # buildkit
# 2026-06-18 13:19:45 0.00B 添加元数据标签
LABEL com.safe.builddate=20260617
# 2026-06-18 13:19:45 0.00B 定义构建参数
ARG BUILD_DATE=20260617
# 2026-06-18 13:06:13 67.19KB 执行命令并创建新的镜像层
RUN |2 BUILD_DATE= TARGETARCH=amd64 /bin/sh -c sed -i "s%#networkaddress.cache.ttl=-1%networkaddress.cache.ttl=60%g" /opt/java/openjdk/conf/security/java.security # buildkit
# 2026-06-18 13:06:13 36.00MB 执行命令并创建新的镜像层
RUN |2 BUILD_DATE= TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get upgrade -y && DEBIAN_FRONTEND=noninteractive apt-get -y install wget zip netcat-traditional tzdata && groupadd -r -g 1363 fmeflow && useradd -r -u 1363 -g fmeflow fmeflow && mkdir -p /opt/fmeflow && mkdir -p /fmeflow && mkdir -p /data/fmeflowdata && chown -R fmeflow:fmeflow /fmeflow /usr/local/tomcat /opt/fmeflow /data/fmeflowdata && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-06-18 13:05:59 4.52MB 复制新文件或目录到容器中
COPY /go/src/github.com/tianon/gosu/gosu /usr/local/bin/gosu # buildkit
# 2026-06-18 13:05:59 24.06KB 执行命令并创建新的镜像层
RUN |2 BUILD_DATE= TARGETARCH=amd64 /bin/sh -c chmod +x /tini # buildkit
# 2026-06-18 13:05:59 24.06KB 复制文件或目录到容器中
ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-amd64 /tini # buildkit
# 2026-06-18 13:05:59 0.00B 设置环境变量 TINI_VERSION
ENV TINI_VERSION=v0.19.0
# 2026-06-18 13:05:59 0.00B 设置工作目录为/fmeflow
WORKDIR /fmeflow
# 2026-06-18 13:05:59 0.00B 添加元数据标签
LABEL com.safe.builddate=
# 2026-06-18 13:05:59 0.00B 定义构建参数
ARG TARGETARCH=amd64
# 2026-06-18 13:05:59 0.00B 定义构建参数
ARG BUILD_DATE
# 2026-06-18 13:05:59 0.00B 添加元数据标签
LABEL com.safe.email=support@safe.com
# 2026-06-18 13:05:59 0.00B 添加元数据标签
LABEL com.safe.author=Safe Software Inc.
# 2026-06-02 18:17:25 0.00B 设置默认要执行的命令
CMD ["catalina.sh" "run"]
# 2026-06-02 18:17:25 0.00B 配置容器启动时运行的命令
ENTRYPOINT []
# 2026-06-02 18:17:25 0.00B 声明容器运行时监听的端口
EXPOSE map[8080/tcp:{}]
# 2026-06-02 18:17:25 0.00B 执行命令并创建新的镜像层
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
# 2026-06-02 18:17:24 814.34KB 执行命令并创建新的镜像层
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
# 2026-06-02 18:17:20 19.92MB 复制新文件或目录到容器中
COPY /usr/local/tomcat /usr/local/tomcat # buildkit
# 2026-06-02 18:17:20 0.00B 设置环境变量 TOMCAT_SHA512
ENV TOMCAT_SHA512=f36af12391a277e5c3a802a8e1a2a1e4354cd461b547d2e1a33ac0ab88d707d3fb2591e034a17b7d3a6b965a4c977a97dbf29bb81a3867e85aeec3d8d189e22e
# 2026-06-02 18:17:20 0.00B 设置环境变量 TOMCAT_VERSION
ENV TOMCAT_VERSION=10.1.55
# 2026-06-02 18:17:20 0.00B 设置环境变量 TOMCAT_MAJOR
ENV TOMCAT_MAJOR=10
# 2026-06-02 18:17:20 0.00B 设置环境变量 LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib
# 2026-06-02 18:17:20 0.00B 设置环境变量 TOMCAT_NATIVE_LIBDIR
ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib
# 2026-06-02 18:17:20 0.00B 设置工作目录为/usr/local/tomcat
WORKDIR /usr/local/tomcat
# 2026-06-02 18:17:20 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir -p "$CATALINA_HOME" # buildkit
# 2026-06-02 18:17:20 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-06-02 18:17:20 0.00B 设置环境变量 CATALINA_HOME
ENV CATALINA_HOME=/usr/local/tomcat
# 2026-06-02 16:14:26 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/__cacert_entrypoint.sh"]
# 2026-06-02 16:14:26 5.31KB 复制新文件或目录到容器中
COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit
# 2026-06-02 16:14:26 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; echo "Verifying install ..."; echo "java --version"; java --version; echo "Complete." # buildkit
# 2026-06-02 16:14:26 141.70MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='adb5a2364baa51de1ef91bb9911f5a61d24b045fe1d6647cb8050272a3a8ee75'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.19%2B10/OpenJDK17U-jre_x64_linux_hotspot_17.0.19_10.tar.gz'; ;; arm64) ESUM='aae834297a87736869745be7c1fca3207ea9167c5824f41c88b0ebb2e3ccb9b1'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.19%2B10/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.19_10.tar.gz'; ;; armhf) ESUM='018d1f5c11b2f1a2175c282a0fe8a17d9166da84b70ec1c60c1fa628a261d1eb'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.19%2B10/OpenJDK17U-jre_arm_linux_hotspot_17.0.19_10.tar.gz'; ;; ppc64el) ESUM='1b028a08d96054ef29a3b6c424537d9644e0ec5fb5742a64d967dd56d5571b6b'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.19%2B10/OpenJDK17U-jre_ppc64le_linux_hotspot_17.0.19_10.tar.gz'; ;; riscv64) ESUM='08c8c193fc2e8e6eb4450d3ddcefa78889eef338b2bbc0b30e5a6d586fc6d646'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.19%2B10/OpenJDK17U-jre_riscv64_linux_hotspot_17.0.19_10.tar.gz'; ;; s390x) ESUM='674547d46dad6909fdcdafe5a691c131b048a8d226ccd7d0a4e96f2b208d772a'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.19%2B10/OpenJDK17U-jre_s390x_linux_hotspot_17.0.19_10.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
# 2026-06-02 16:14:01 0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-17.0.19+10
# 2026-06-02 16:14:01 44.16MB 执行命令并创建新的镜像层
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
# 2026-06-02 16:14:01 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2026-06-02 16:14:01 0.00B 设置环境变量 PATH
ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-06-02 16:14:01 0.00B 设置环境变量 JAVA_HOME
ENV JAVA_HOME=/opt/java/openjdk
# 2026-05-20 09:37:22 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2026-05-20 09:37:21 78.14MB
/bin/sh -c #(nop) ADD file:46ac5b8ee4c64ad9ebe840abd5619f571a617ac19483764d47d0eeba7907934f in /
# 2026-05-20 09:37:19 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04
# 2026-05-20 09:37:19 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2026-05-20 09:37:19 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:baa0b997bfa06371cfa26c406ff8e6bf443b8c11614b0b19402c484d8f1679ab",
"RepoTags": [
"safesoftware/fmeflow-web:2026.2",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/safesoftware/fmeflow-web:2026.2"
],
"RepoDigests": [
"safesoftware/fmeflow-web@sha256:a8d11f59710a2bb67b45f70b7baee62fb0b6e808682ab397fe6ee5274169973f",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/safesoftware/fmeflow-web@sha256:4eccac73feaeddcd8379784e7dc4b866611945e4502af48fb388a112ad6bb25b"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-06-18T05:21:19.556103911Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "fmeflow",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/tomcat/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"JAVA_HOME=/opt/java/openjdk",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US:en",
"LC_ALL=en_US.UTF-8",
"JAVA_VERSION=jdk-17.0.19+10",
"CATALINA_HOME=/usr/local/tomcat",
"TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib",
"LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib",
"TOMCAT_MAJOR=10",
"TOMCAT_VERSION=10.1.55",
"TOMCAT_SHA512=f36af12391a277e5c3a802a8e1a2a1e4354cd461b547d2e1a33ac0ab88d707d3fb2591e034a17b7d3a6b965a4c977a97dbf29bb81a3867e85aeec3d8d189e22e",
"TINI_VERSION=v0.19.0",
"INSTALLDIR=/opt/fmeflow",
"SECURITYCLUSTER=DEFAULT",
"ENABLESECURITY=true",
"FMEFLOWNAME=FME Flow",
"PLATFORM=linux-x64",
"ADMINUSERNAME=admin",
"ZIPCODEPAGE=CP437",
"CODEPAGE=UTF-8",
"CHUNKEDTRANSFERENCODING=upload",
"UMASK=0022",
"WEBAPPSDIR=/usr/local/tomcat/webapps",
"REPOSITORYSERVERROOTDIR=/data/fmeflowdata",
"FMEFLOWREQUESTPORT=7071",
"SCHEDULERPORT=7073",
"PROCESSMONITORADMINPORTCORE=7501",
"FMECONFIGREQUESTPORT=7077",
"WEBSOCKETPORT=7078",
"NOTIFIERREQUESTPORT=7072",
"RELAYERREQUESTPORT=7075",
"MOUNTPOINTREQUESTPORT=7079",
"CONNECTIONREQUESTPORT=7069",
"SERVLETPORT=8080",
"JAVA=/usr/bin/java",
"JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom",
"CATALINA_TMPDIR=/data/fmeflowdata/resources/system/temp/tomcat",
"ENVFILE=/etc/default/locale",
"WEBSOCKETSERVERPORTCOMMENT=",
"FMEFLOWBUILD=FME Flow 2026.2 - Build 26333 - linux-x64",
"BUILDNUM=26333",
"FMEFULLVERSION=2026.2.0.0",
"COPYRIGHT=Copyright (c) 1994 - 2026, Safe Software Inc.",
"REDISPASSWORD=sozPpbLfgdI9WJoPejNMpSxGw",
"COREHOSTNAME=fmeflowcore",
"WEBSERVERHOSTNAME=fmeflowweb",
"WEBSOCKETHOSTNAME=fmeflowwebsocket",
"EXTERNALHOSTNAME=localhost",
"EXTERNALPORT=443",
"WEBPROTOCOL=https",
"HIDEHOSTCONTENT=true",
"MAXTHREADS=200",
"PGSQLCOMMENT=",
"PGSQLHOSTNAME=fmeflowdb",
"PGSQLPORT=5432",
"PGSQLDATABASENAME=fmeflow",
"PGSQLUSERNAME=fmeflow",
"PGSQLPASSWORD=fmeflow",
"SQLSERVERDATABASENAME=fmeflow",
"SQLSERVERUSERNAME=fmeflow",
"SQLSERVERPASSWORD=$FME$1ser$ver",
"SQLSERVERCOMMENT=#",
"SQLSERVERHOSTNAME=localhost",
"SQLSERVERPORT=1433",
"SQLSERVERINSTANCENAME=",
"ORACLEUSERNAME=fmeflow",
"ORACLEPASSWORD=fmeflow",
"ORACLECOMMENT=#",
"ORACLEHOSTNAME=localhost",
"ORACLEPORT=1521",
"ORACLESID=orcl",
"POSTGRESQLSSL=false",
"REMOTEENGINE=false"
],
"Cmd": [
"/fmeflow/start_tomcat.sh"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/fmeflow",
"Entrypoint": [
"/tini",
"--",
"/fmeflow/fmeflow-web-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"com.safe.author": "Safe Software Inc.",
"com.safe.builddate": "20260617",
"com.safe.email": "support@safe.com",
"org.opencontainers.image.version": "24.04"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 3419140709,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/ef51cc006c089c4f048e912a01700be88826b7e48edd379f8df6b06604fb0fe0/diff:/var/lib/docker/overlay2/f771f5d625749e25912c81939561f151e3270a6db71d247a173c351f1df78c98/diff:/var/lib/docker/overlay2/e632fe054cab67c80760f6e5ccdf644cd0fd316cd688d31775702621743b945d/diff:/var/lib/docker/overlay2/fd1429482af4dfdc3e40ce8c69ee81a249fe9c755409ebb685d1bf7cd491df8b/diff:/var/lib/docker/overlay2/7c6c8c96e5aa1b4812eff99660eca89cd51b6144c9643d74b3b69f36d5e9d179/diff:/var/lib/docker/overlay2/1816d1f98c07f13e4d2b68a7a40c0a39abc7f7277218054a94f8fe4e3c3130d0/diff:/var/lib/docker/overlay2/1b96a7ba51b39d74cf1afddf8cb113c8e7dc0a0d805c06fed59c5beff378b939/diff:/var/lib/docker/overlay2/6e1b30e5028bd7817f8979fc1381443d6d2ea45a6ee4ffc8336882b9ec6d5e28/diff:/var/lib/docker/overlay2/ec1f94406fe97a1aea7481a3937a4124547d4c836ba2c3c69f8e4f531a80433d/diff:/var/lib/docker/overlay2/e2c74af399dbe7b771730cd2486c1261db00bfd4a10937fe3990dc4726982b7f/diff:/var/lib/docker/overlay2/63047116ec640b8dd77675f2479b1ca1f8915ab82651f1bfceee4f7778b9ac41/diff:/var/lib/docker/overlay2/c9d33537dcdc6c247947afdcf370bebe4c9b0ee7d005de2993dac8bb90deb3b3/diff:/var/lib/docker/overlay2/a43424248fe65fdf93580afa9f5c8e53ba3d7f2b529ecf224e12c230b2f23808/diff:/var/lib/docker/overlay2/ed36a929341dc25cfb69ec8f279e9645a502a1a6ac1986eaf373e59405032d01/diff:/var/lib/docker/overlay2/18b3701afc9bc209192dbe37c66ec38aff040243dff8919590b085578113f4ff/diff:/var/lib/docker/overlay2/28891d4e80cf7d47851c323ab4abcfa4b319e014e3e05a01883a7dd81f2194e6/diff:/var/lib/docker/overlay2/1501876d57c7674878e944d8313032ea634103249fe74990c60b288d233c8d8f/diff:/var/lib/docker/overlay2/370b415359f3e7e04e0de972642ae803f783ed81330a5f3792a3d9a24a0ada85/diff:/var/lib/docker/overlay2/f66c0fc638acdf51e037bddd3ed005939a22a50d04c17686b54b68428b2b9b60/diff:/var/lib/docker/overlay2/e4203718772af5f6a85602867571bd2b7ce587f05bcd2c72b09153f964e20cb2/diff:/var/lib/docker/overlay2/55498f8b80d655e4767d88c074f72d2ff4a88cc60e3173f6fb7feee7596e28da/diff:/var/lib/docker/overlay2/9bb7661f9f8388a11164439c82de8d574d2fbea96d10528454c8c6e79fcde469/diff:/var/lib/docker/overlay2/3155e2b4aca01f9539ea91d0e7fd3a19a61160f9b629c54bd855128134e92a4a/diff:/var/lib/docker/overlay2/2c7cf6e717af5d1adf2b236b458e1740798e33665f1b5c133310b5700862dd9d/diff:/var/lib/docker/overlay2/cc6a8d3e0a6240249e7b7c33e25f92cef7988a6c1fcf4dc382efdfe4f0458c04/diff:/var/lib/docker/overlay2/e89311b7de925db7f9e65c0e78766f9d05da64ae55828cdad0f5becdfa398c22/diff:/var/lib/docker/overlay2/82cb1aba72708dd64c22308a67b4262c58e90bc087b48977bd065accd82ccff1/diff:/var/lib/docker/overlay2/79024db10fdbf0e569158d1fd47c78aa712d75ea270f970db1ef9395e7614c76/diff:/var/lib/docker/overlay2/060a43f25b708133c7634681314aa4a3ea2e759f7fd18ef081c854a01d7220da/diff:/var/lib/docker/overlay2/38e38376172da3c38b5e44d98b04e632c8e51fbf1167087fa3942716ca03b848/diff:/var/lib/docker/overlay2/ee8a5582244e4ce1503795c11708a0f2b3c0f4ff48809c4b7bddd3fc2160e202/diff:/var/lib/docker/overlay2/45ba1024654466f28de57b3afe67dfbb3af11da7cfc6b87249f1552f66136550/diff",
"MergedDir": "/var/lib/docker/overlay2/53ec7a2e751d3151a638baf846686830b9be89e68cff2051f492d87641b28025/merged",
"UpperDir": "/var/lib/docker/overlay2/53ec7a2e751d3151a638baf846686830b9be89e68cff2051f492d87641b28025/diff",
"WorkDir": "/var/lib/docker/overlay2/53ec7a2e751d3151a638baf846686830b9be89e68cff2051f492d87641b28025/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:98effb2dfe85d4c431f97d90482075f19e5fc3a57c2dd423d8bdfd4813620043",
"sha256:a31df1bd8fc57b13e4af1bbbf9b5e1942bbaeaaa4dbae6f4d9f322f86a85eaca",
"sha256:b0dca8967e6da0927189a84e890e08973f5683219c5c886617d9d842529f3161",
"sha256:8b5b77c70925ded5a2705ca4f45e417e2e7d4a089f2ff18fef8a4ac43b81a6c9",
"sha256:e6ffcdf135dba27fa2fe7d4d76495f04678390b3fd3466653eed3f77889d1d7b",
"sha256:6a5145633d36d0fa34aa6d1d3b809ba1e0c1aee4616e7e98d9a31a9064b744a3",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5eb8fb054a1c815de5d8fff0ee6962a16802e3476a8827e7a3952537ace12335",
"sha256:21fd3f304d808248f349290b1b0f3a524dcc6a99936f6625dad6056c91c6b0ae",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:6ec6c93029acf0b529b28b9f7ca84e3a4f05f8cf49e2a2e5c4bce724411eafb6",
"sha256:f5ba333679fde238d0ad161d1326623c9ed4ce9476b582275fa83a057c349c5c",
"sha256:969568a5a38ff6aaafcb8777e51d5252c21b29151fc922b59e37109165b2e94f",
"sha256:62e0b539c4d87b6c908c21181f8cf98645b990dbaf25a850b368b83ca1910506",
"sha256:8714c9a677737e693f56f9a37a091fb475ed0b50c52964bd96a15975c3eb19ac",
"sha256:70aaba85f82ffc21dbc3dc7943b2656b4f74cc3829c89841a7bf091942e7fed1",
"sha256:78ac3c7477bec76b79ac7df98b498b1cc2c0d6021ca3e2e181e70a7854d13ad1",
"sha256:dfb94a874c180f2008a52955b7aefac501ef30de886da9e16328558d5b43f955",
"sha256:dde10aa8dae9625529b0d29b7f1e8f28f3839ea879dd096685d430b9a0e36882",
"sha256:ba39ffab2c8411c8828bd4fcd4a35b13e19a21c3635050976c8aa4755a0e3ede",
"sha256:14b79995daac64f93c4c78563fb08e6f5ccd1c8835ca1fff1ec2ec67d73d54e7",
"sha256:dd9e1065c00bb43a16061f39ee6c10bef96ec461c9a91880bc9c6685f2cdcbee",
"sha256:490e11edf2b009b80f9af65b07054d501a86ecd59730a0debccd2d4189f2a8f5",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:9b628b1129e782422d4f4f1769fe95541c1b6c1acc314c8dad7bb27549dd4b9c",
"sha256:42e161ee3284a619cd8cb832fe8ae13dd8368a545c0cf496172227482f7d8b7b",
"sha256:274e9426fdc03cdb3db1502ae20d9a70275d90f61f2590287afcf738773f6e49",
"sha256:e06a4e6f8519479c00412d592f83cf5f0f1c4df028ff3a1e7bed907c40e51cce",
"sha256:e22657d69eb44152a42e4ffe95d397420c5f4d02a1e6655505d1bbf95406eb37",
"sha256:ad5f363f2e6c91057c99ac98be7c8144ed9f040d5cb8108bbf593c7c2f67c485",
"sha256:40584e13941be0ae34462ff65afe022671d17c9737538fb99fe08b84ec97cb8f",
"sha256:ff1efb5f43380731bbf49aee7ad6197da7335adf77553cd5185ba43e640459fe",
"sha256:06e57b8f0171419ab83431b698c269b27c494ebd18f4f71d7fa1e0312b738a34"
]
},
"Metadata": {
"LastTagTime": "2026-08-12T01:03:20.000701335+08:00"
}
}