моя война с применением скопирована в /opt/glassfish7/glassfish/domains/domain1/autodeploy/ либо во время сборки изображения, либо с докером cp. /opt/glassfish7/glassfish/domains/domain1/logs/server.log . Это остается простоям время около 100 ~ 110 секунд, затем переходит только к успешному развертыванию. < /P>
Я не устанавливаю папку с автоматической точкой как том. < /P>
< /li>
Старое развертывание успешно удаляется перед исправлением. /> < /ul>
Из -за моего понимания, похоже, что сканер Autodeploy Glassfish продолжает думать, что война изменилась, и запускает перераспределение, даже если он не имеет.
Код: Выделить всё
# java Build Stage
FROM eclipse-temurin:17-jdk-jammy AS build
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
# Build war file
RUN --mount=type=cache,target=/root/.m2 chmod +x ./mvnw && ./mvnw -f pom.xml clean package
# Deployment Stage
FROM ghcr.io/eclipse-ee4j/glassfish
# Copy WAR to autodeploy
COPY --from=build /app/target/*.war /opt/glassfish7/glassfish/domains/domain1/autodeploy/web.war
Код: Выделить всё
version: '3.8'
services:
servlet_app:
container_name: ${APP_CONTAINER_NAME}
user: root
restart: always
image: clinic_management_app:latest
volumes:
- ./src/main/Content:${FILE_UPLOAD_PATH}
- ./src/main/Logs:${LOG_PATH}
- ./src/main/Database:${DB_SOURCE_PATH}
build: .
ports:
- "8080:8080"
- "4848:4848"
environment:
JTA_DATA_SOURCE: ${JTA_DATA_SOURCE}
FILE_UPLOAD_PATH: ${FILE_UPLOAD_PATH}
LOG_PATH: ${LOG_PATH}
UNAUTHORIZED_PAGE: ${UNAUTHORIZED_PAGE}
INTERNAL_ERROR_PAGE: ${INTERNAL_ERROR_PAGE}
NOT_FOUND_PAGE: ${NOT_FOUND_PAGE}
DB_NAME: ${DB_NAME}
DB_SYSTEM_PATH: ${DB_SYSTEM_PATH}
DB_SEQUENCE_FILE_NAME: ${DB_SEQUENCE_FILE_NAME}
DB_SOURCE_PATH: ${DB_SOURCE_PATH}
Зарегистрировано в консоле администратора. Развертывание. < /P>
< /li>
выбрал мой файл войны с локальной машины. < /P>
< /li>
выбрал цель развертывания по умолчанию (сервер). < /P>
< /li>
оставленные все настройки в качестве дефицита (. false). < /p>
< /li>
Нажмите OK для развертывания. Завершается-то же самое, что я вижу при использовании Autodeploy /.
Это последняя строка перед длинным периодом холостого хода:
Код: Выделить всё
[#|2025-08-12T09:03:01.771952Z|INFO|GF 7.0.23|jakarta.enterprise.system.jmx|...|JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://54f5307ef096:8686/jndi/rmi://54f5307ef096:8686/jmxrmi|#]
< /code>
После этого примерно 92 секунды NO log[#|2025-08-12T09:03:45.112843Z|INFO|GF 7.0.23|...|web was successfully deployed in 93,498 milliseconds.|#]
[2025-08-12T14:47:55.261988Z] [] [INFO] [NCLS-GFLAUNCHER-00005] [jakarta.enterprise.launcher] [tid: _ThreadID=1 _ThreadName=main] [levelValue: 800] [[
JVM invocation command line:
/opt/java/openjdk/bin/java
-cp
/opt/glassfish7/glassfish/modules/glassfish.jar
-DWALL_CLOCK_START=2025-08-12T14:47:54.847684119Z
-XX:+UnlockDiagnosticVMOptions
-XX:NewRatio=2
-Xmx512m
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/sun.nio.fs=ALL-UNNAMED
--add-opens=java.base/sun.net.www.protocol.jrt=ALL-UNNAMED
--add-opens=java.naming/javax.naming.spi=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
--add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
--add-exports=java.base/jdk.internal.vm.annotation=ALL-UNNAMED
--add-opens=java.base/jdk.internal.vm.annotation=ALL-UNNAMED
-javaagent:/opt/glassfish7/glassfish/lib/monitor/flashlight-agent.jar
-Djava.awt.headless=true
-Djdk.corba.allowOutputStreamSubclass=true
-Djdk.tls.rejectClientInitiatedRenegotiation=true
-Djavax.xml.accessExternalSchema=all
-Djava.security.policy=/opt/glassfish7/glassfish/domains/domain1/config/server.policy
-Djava.security.auth.login.config=/opt/glassfish7/glassfish/domains/domain1/config/login.conf
-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as
-Djavax.net.ssl.keyStore=/opt/glassfish7/glassfish/domains/domain1/config/keystore.jks
-Djavax.net.ssl.trustStore=/opt/glassfish7/glassfish/domains/domain1/config/cacerts.jks
-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver
-DANTLR_USE_DIRECT_CLASS_LOADING=true
-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory
-Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command,org.apache.felix.shell.remote,org.apache.felix.fileinstall
-Dosgi.shell.telnet.port=6666
-Dosgi.shell.telnet.maxconn=1
-Dosgi.shell.telnet.ip=127.0.0.1
-Dgosh.args=--nointeractive
-Dfelix.fileinstall.dir=/opt/glassfish7/glassfish/modules/autostart/
-Dfelix.fileinstall.poll=5000
-Dfelix.fileinstall.log.level=2
-Dfelix.fileinstall.bundles.new.start=true
-Dfelix.fileinstall.bundles.startTransient=true
-Dfelix.fileinstall.disableConfigSave=false
-Dorg.glassfish.gmbal.no.multipleUpperBoundsException=true
-Dcom.ctc.wstx.returnNullForDefaultNamespace=true
-Djdk.attach.allowAttachSelf=true
-Dcom.sun.aas.instanceRoot=/opt/glassfish7/glassfish/domains/domain1
-Dcom.sun.aas.installRoot=/opt/glassfish7/glassfish
-Djava.library.path=/opt/glassfish7/glassfish/lib:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
com.sun.enterprise.glassfish.bootstrap.GlassFishMain
-upgrade
false
-domaindir
/opt/glassfish7/glassfish/domains/domain1
-read-stdin
true
-asadmin-args
--host,,,localhost,,,--port,,,4848,,,--user,,,admin,,,--passwordfile,,,/password.txt,,,--secure=false,,,--terse=false,,,--echo=false,,,--interactive=false,,,start-domain,,,--verbose=false,,,--watchdog=false,,,--debug=false,,,--domaindir,,,/opt/glassfish7/glassfish/domains,,,domain1
-domainname
domain1
-instancename
server
-type
DAS
-verbose
false
-asadmin-classpath
/opt/glassfish7/glassfish/modules/admin-cli.jar
-debug
false
-asadmin-classname
com.sun.enterprise.admin.cli.AdminMain]]
< /code>
Информация об ошибке < /p>
Во время развертывания < /li>
нет журналов. Speed. < /li>
< /ul>
Вопросы: < /p>
Что обычно вызывает длинное окно холостого хода после JMXStartupService, но до того, как ход развертывания будет зарегистрировано, когда нет сильных входных записей? Чтобы увидеть подробные фазы (классовая загрузка, сканирование CDI, Verifier, компиляция JSP и т. Д.), Которые запускаются в этом окне? /> < /li>
будет предварительно развернуться во время сборки изображения (начало домена → развертывание асадмин → остановить домен) и отключение автодеплай>
Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-docker