gpt4 book ai didi

java - 在docker中运行的热重载java程序

转载 作者:行者123 更新时间:2023-12-01 14:28:13 34 4
gpt4 key购买 nike

我开发了一个应该在docker中运行的java程序。但是,我在调试运行在 docker 中的 java 程序时遇到了很多麻烦。

网上查了一下,有些教程提出了spring-dev-tools之类的工具(因为我的java程序是基于spring-boot的程序)。

https://www.youtube.com/watch?v=sz5Zv5QQ5ek

根据那些教程,调试是可以的,例如设置断点和变量监视,但是,当我更新我的代码(例如,某些类)时,这些更改无法立即反射(reflect)在 docker 中运行的程序中,程序表现得像旧代码。

有人可以给一些提示吗?

最佳答案

我通过执行以下操作设法完成了这项工作:

  • 在运行时将源代码挂载到容器中
  • 使用远程调试器连接

  • 这是我的 dockerfile:
    FROM gradle:5.4-jdk12
    WORKDIR /app
    EXPOSE 8080 5005

    这是我的 docker-compose.yml:
    version: '3'
    services:
    app:
    build:
    context: .
    ports:
    - 5005:5005
    - 8080:8080
    volumes:
    - .:/app
    command: ["gradle", "bootRun"]

    当我使用 docker-compose up 运行它时然后连接远程调试器,热重载工作。

    我是从 Intellij 连接的,所以我必须重建项目才能使热重载工作。

    关于java - 在docker中运行的热重载java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322488/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com