• 022docker与idea结合使用,以及docker断点调试


    1、idea配置docker 部署

    1.1、服务器端:服务器配置docker远程连接

    vi /lib/systemd/system/docker.service  # ① 修改宿主机配置文件
    #在 ExecStart 开头的这一行末尾添加 -H tcp://0.0.0.0:2375
    systemctl daemon-reload && systemctl restart docker # ② 重启docker
    firewall-cmd --zone=public --add-port=2375/tcp --permanent # ③ 防火墙开放端口2375

    http://ip地址:2375/version

    1.2、本地下载插件docker,然后配置

    连接成功后我们便可查看docker下的容器和镜像 

    然后添加dockerfile配置【其实就是打包镜像:docker build -t app:1.1 .】以及启动docker

     构建成功后,既部署载远程了。当然上一步也可以选择本地。

    2、使用docker调试

    为了保证测试环境与正式环境一致,我们大多使用docker,因为docker可以封装除了内核硬件之外的运行环境,docker将软件包以层的概念封装起来,保证在不同机器都会有一致的运行环境.

    2.1、创建打包镜像配置

    【其实就是打包镜像docker build -t app:1.1 .】这里记得勾选 Run built images 这样能够进入调试

    添加dockerfile运行时配置,构建镜像配置,参看上面的配置

    注意:若果都是本机记得5005 不要绑定映射,端口占用,非要写个 就随便绑定一个即可

    2.2、新建一个Remote类型的Debug config

    具体配置如下图

    如果使用maven 多moudle的话在use module classpath选择要进行调试的moudle

    在before launch:添加一个before选项,类型是launch docker before debug类型,现在你在第一步新增的DockerFile Run Config

    配置docker启动

    方式二、在custom command选项配置启动项目实例的java 命令,将图中圈起来的部分作为java命令的参数

    java
    -jar
    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
    /home/admin/app.jar

    方式一、dockerfile中配置【推荐】

    ENTRYPOINT ["sh","-c","java -Duser.timezone=GMT+08 -jar  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 /home/admin/app.jar"] 

    记得加入代理:agentlib:jdwp

    注意dockerfile中配置

    端口漏出

    ###暴露个jar运行的端口8081运行端口  5005调试端口
    EXPOSE 8081 5005

     打断点调试即可

    2.3、配置remote 不每次都构建镜像

    因为上述before launch,添加了dockerfile配置,故每次都要构建进行

    有修改时候使用上述,没有修改新建一个新的remote调试,不添加before launch即可

  • 相关阅读:
    饮冰三年-人工智能-Python-35权限管理(万能的权限通用模块)
    饮冰三年-人工智能-Python-34CRM项目实战
    饮冰三年-人工智能-Python-33权限管理(通过配置快速生成列表)
    集腋成裘-15-MongoDB系列-02Find详细
    集腋成裘-14-MongoDB系列-01初识MongoDB
    饮冰三年-人工智能-Python-33博客园山寨版之报障管理
    饮冰三年-人工智能-Python-32博客园山寨版之后台管理
    JVM内存管理
    连接池实现原理
    定时器
  • 原文地址:https://www.cnblogs.com/bjlhx/p/15855957.html
Copyright © 2020-2023  润新知