亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

IntelliJ 在 Docker 中調試 Java 應用程序

IntelliJ 在 Docker 中調試 Java 應用程序

慕姐8265434 2023-05-17 17:56:52
我對此很陌生。你能告訴我如何設置在 Docker 中運行的調試 Java 程序嗎?該項目是在 Maven 的幫助下構建的,之后使用 Docker*.war來運行程序。據我了解,必須遠程推送 IntelliJ 進行調試。docker-compose.yml :# myapp (Wildfly + Keycloak + myapp)  myapp-myapp:    image: myapp/wildfly-myapp:wf11    container_name: myapp-myapp    depends_on:      - myapp-postgres      - myapp-mailhog    environment:      TZ : Europe/Paris      KEYCLOAK_URL: http://localhost:8080/auth      WILDFLY_PROXY_ADDRESS_FORWARDING: "true"      JAVA_OPTS:       DB_CONNEXION_URL: jdbc:postgresql://myapp-postgres:5432/myapp_db      DB_CONNEXION_URL_DELIMITER: "|"      DB_HOST: myapp-postgres      DB_NAME: ${DB_NAME}      DB_PASSWORD: ${DB_PASSWORD}      DB_USER: ${DB_USER}      KEYCLOAK_DB_CONNEXION_URL: jdbc:postgresql://myapp-postgres:5432/keycloak      KEYCLOAK_DB_CONNEXION_URL_DELIMITER: "|"      KEYCLOAK_DB_USER : keycloak      KEYCLOAK_DB_PASSWORD : keycloak      KEYCLOAK_DB_NAME : keycloak      KEYCLOAK_DB_HOST: postgres      APP_CLUSTER: "false"      JGROUPS_EXTERNAL_ADDRESS: 10.178.27.30      JGROUPS_TCP_EXTERNAL_PORT: 7600      JGROUPS_TCP_BIND_PORT: 7600      JGROUPS_DEFAULT_STACK: tcpping      JGROUPS_INITIAL_HOSTS: "10.178.27.30[7600]"      WILDFLY_CLUSTER_PASSWORD:      WILDFLY_NODE_NAME: myapp-master      SMTP_HOST: myapp-mailhog      SMTP_PORT: 1025      SMTP_FROM: ${SMTP_FROM}      SMTP_USERNAME: ""      SMTP_PASSWORD: ""      myapp_LOG_LEVEL: "ALL"      myapp_DEBUG_LEVEL: "ALL"    volumes:       - ./myapp/data:/opt/jboss/myappdata       - ./myapp/logs:/opt/jboss/wildfly/standalone/log       - ./myapp/deployments:/opt/jboss/wildfly/standalone/deployments       - ./myapp/configuration/myapp-admin.properties:/opt/jboss/wildfly/standalone/configuration/myapp-admin.properties       - ${ST_SRC}:/opt/jboss/myappdata/${PROVIDER_CODE}/frontend/st       - ${CC_SRC}:/opt/jboss/myappdata/${PROVIDER_CODE}/frontend/cc       - ${SC_SRC}:/opt/jboss/myappdata/${PROVIDER_CODE}/frontend/sc    ports:      - "8080:8080"      - "7600:7600"
查看完整描述

1 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您可以使用以下 JVM-Argument 啟用遠程調試


-agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n

然后你可以附加 Intellij 調試器Run->Attach to process 你的應用程序應該有指定的端口(在這種情況下是 8000)


請參閱此處了解更多信息


對于此示例(Docker-Compose with Wildfly)


environment:

  ...

  JAVA_OPTS: -agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n

  ...

ports:

  - "8000:8000"

  ...

一般來說


碼頭工人


要在 Docker 中使用,您還必須公開端口


EXPOSE 8000

ENTRYPOINT ["java", "-jar", "-agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n", "/path/to/my/java.jar"]

進而


docker run -p 8000:8000 <image>

IntelliJ(從 2019.1 開始)


這個過程現在可以由 IntelliJ 自動完成 https://blog.jetbrains.com/idea/2019/04/debug-your-java-applications-in-docker-using-intellij-idea/


查看完整回答
反對 回復 2023-05-17
  • 1 回答
  • 0 關注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號