idea 调试远程docker中的spring boot 项目

news2024/11/19 12:40:37

开发环境

idea-2023(放心,旧版本也可以远程调试)

Java版本:17

生产环境

docker版本:23.0.3

Java版本1:openjdk:17.0.2(基于Java17的项目)

Java版本2:adoptopenjdk:8-jdk-openj9(基于Java8的项目)

docker配置

Java8项目的docker配置

dockerFile


FROM adoptopenjdk:8-jdk-openj9

RUN mkdir -p /opt/projects/admin-api
RUN mkdir -p /var/lib/docker/containers/admin-api/


WORKDIR /opt/projects/admin-api

COPY ./admin-api.jar ./

#EXPOSE 2000

# 启动服务
ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002"
CMD java ${JAVA_OPTS} -Djava.security.egd=file:/prod/./urandom -jar admin-api.jar --spring.profiles.active=prod

在jar启动命令中加入JVM参数:

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

作用:启动时支持远程调试,监听10002端口,请确保该端口已被防火墙放行,阿里云服务器的安全策略中也要放行。

docker-compose.yml

  admin-api:
    build:
      context: admin-api
    container_name: admin-api
    environment:
      - TZ=Asia/Shanghai
      - JAVA_OPTS=-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002
    hostname: admin-api
    image: admin-api
    networks:
      mall4j-network:
        ipv4_address: 192.168.159.9
    ports:
      - "8112:8112"
      - "10002:10002"
    restart: always
    volumes:
      - ./cert:/cert
      - ./admin-api/log:/opt/projects/admin-api/log

你会发现,dockerFile和docker-compose.yml中都有远程调试配置,实际上,docker-compose.yml会覆盖dockerFile。

Java17项目的docker配置

把  FROM adoptopenjdk:8-jdk-openj9   替换成   FROM openjdk:17.0.2

把   

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

替换成:

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

开始调试 

第一步:新建 远程JVM调试,旧版本idea新建Remote.

          

 第二步:配置调试参数

 第三步:启动调试

 

  到此结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源网安亮相粤港澳大湾区CIO高峰论坛,保障企业数字化安全转型

近日,由深圳市工业化与信息化局、深圳市科学技术协会指导,深圳市CIO协会主办的“2023中国(深圳)数字化转型大会暨粤港澳大湾区CIO高峰论坛”圆满完成。开源网安作为拥有软件安全领域全链条产品的厂商,携多年来打造的国产化软件安全替代方案&a…

EMC模式如何助力新能源服务商攻坚克难

01. 什么是合同能源管理? 合同能源管理(EMC-Energy Management Contract)是一种新型的市场化节能机制,其实质就是以减少的能源费用来支付节能项目全部成本的节能投资方式。:节能服务公司与用能单位以契约形式约定节能项目的节能目标,节能服务…

【Python脚本】视频稳像(Video Stabilization)

#【Python脚本】视频稳像(Video Stabilization) 参考:博客1 参考: 原文:https://blog.csdn.net/hjl240/article/details/52683738 开源:关键词 Video Stabilization 不错: https://github.com/yaochih/awesome-vide…

秒杀系统常见问题—如何避免库存超卖?

大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 以下是正文! 先看问题 首先上一串代码 …

Linux SUID提权脏牛提权

SUID提权 suid就是set user id 。设置了SUID后,文件启动的时候就会以root的权限去运行。就是一个普通用户运行的时候,因为有SUID,所以用root权限去运行它。 加SUID权限chmod ux 这里开始复现。 上传Linux提权信息检测脚本LinEnum find …

堆及其实现

目录 一:堆的概念及结构 1.概念 2.堆的性质 二:堆的实现 1.堆的构建 2.堆的销毁 3.数据的交换 4.堆的插入 5.堆的判空 6.堆的删除 7.取堆顶的数据 8.堆的数据个数 9.示例 三:完整的代码 一&#xff…

十、数据仓库详细介绍(数据质量)理论与经验

数据质量管理是对数据从计划、收集、记录、存储、回收、分析和展示生命周期的每个阶段里可能引发的数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。数据质量管理的终极目标是通过…

会声会影2023最新完整版免费下载

会声会影2023操作简单,功能同样强大!会声会影附带上百种特效、滤镜、转场、模板。同时各类专业级视频工具,如调色、遮罩、绿幕抠像、运动追踪、分屏创建器,满足更高标准的视频需求。这款软件上手操作简单易学,就算你在…

Linux之进程管理类命令

进程管理类命令 ps:查看当前系统进程状态 1)基本语法 语法说明ps aux查看系统中所有进程ps -ef可以查看父子进程之间的关系 2)选项说明 选项说明a列出带有终端的所有用户的进程x列出当前用户的所有进程,包括没有终端的进程u面…

C语言的一些杂记6

实现矩阵序号转置的三种方式 for (i 0; i < row * col; i)t[i / row][i % row] m[i % row][i / row];for (i 0; i < row; i)for (j 0; j < col; j)t[j][i] m[i][j];for (i 0; i < row; i)for (j 0; j < col; j)*(*(t j) i) *(*(m i) j); 变相数组 …

关于 arduino 中的 map(x, a, b,c,d)函数

函数名称&#xff1a;map() 包含形参&#xff1a; value&#xff1a;需要映射的值fromLow&#xff1a;输入值的最小值fromHigh&#xff1a;输入值的最大值toLow&#xff1a;输出值的最小值toHigh&#xff1a;输出值的最大值 功能&#xff1a;将一个值从一个范围映射到另一个…

【环境安装】Linux环境中docker安装redis

一、找到一个合适的docker的redis的版本 可以去docker hub中去找一下 https://link.juejin.cn/?targethttps%3A%2F%2Fhub.docker.com%2F_%2Fredis%3Ftab%3Dtags 二、使用docker安装redis 我这里安装了具体的某个版本 docker pull redis // 下载最新版Redis镜像 (等同于 : d…

UAS协议说明

1 概述 UAS(USB Attached SCSI)是一种位于SCSI协议框架下传输层的一种协议&#xff0c;其作用是通过基于USB的应用层协议约定&#xff0c;将SCSI的协议数据(Protocol Data Unit)用USB进行封装&#xff0c;从而实现使用USB物理连接进行SCSI协议通信的方式。 UAS实际上定义了两…

wireshark网络抓包详解

一、简介 Wireshark是一款非常流行的网络封包分析软件&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。 为了安全考虑&#xff0c;wireshark只能查看封包&#xff0c;而不能修改封包的内容&#xff0c;或者发送封包。 wireshark能获取HTTP&#xff0c;也…

【Android】(最新)跑马灯文字水平滚动(79/100)

先上效果&#xff1a; Android系统中TextView实现跑马灯效果&#xff0c;必须具备以下几个条件&#xff1a; android:singleLine“true”android:ellipsize“marquee”android:marqueeRepeatLimit“marquee_forever”TextView必须单行显示&#xff0c;即内容必须超出TextView…

Jetpack Compose 实现了一个丝滑流畅的页面展开和关闭的效果动画

Jetpack Compose 将动画实现的门槛降低了&#xff0c;不过Compose目前还不支持共享元素过渡。 (上篇文章Jetpack Compose开发的本地笔记本)的动画效果的实现 转跳前的准备工作 定义State枚举类来表示页面的三种状态: Closing(关闭状态) Closed(关闭完成状态) Opening(展开状…

找不到vcruntime140.dll,无法继续执行代码?多种解决方法解析

找不到vcruntime140.dll,无法继续执行代码&#xff1f;当你在尝试运行某个程序时&#xff0c;突然弹出一条错误提示框&#xff0c;告诉你无法继续执行代码&#xff0c;因为找不到vcruntime140.dll。这个问题很常见&#xff0c;但是它可能会让你感到困惑和疑惑。这篇文章将详细介…

chatgpt赋能Python-python_numpy遍历

Python NumPy遍历&#xff1a;使用高效的方式为数据科学家节省时间和精力 Python语言在数据科学领域中的地位越来越重要&#xff0c;并成为了数据科学家的首选语言之一。在解决数据问题时&#xff0c;NumPy模块是Python程序员经常使用的一个重要库。NumPy提供了快速的数组操作…

【大数据实训】—Hadoop开发环境搭建(一)

【大数据实训】—Hadoop开发环境搭建&#xff08;一&#xff09; 第一关、任务描述 本关任务&#xff1a;配置JavaJDK。 相关知识 配置开发环境是我们学习一门IT技术的第一步&#xff0c;Hadoop是基于Java开发的&#xff0c;所以我们学习Hadoop之前需要在Linux系统中配置Jav…

Flowable钉钉对接005-完成钉钉任务

企业中有自己的业务系统&#xff0c;审批都在业务系统中审批&#xff0c;如何结合移动办公的开放平台实现统一审批至关重要。 场景很简单&#xff0c;自己的系统中可以审批&#xff0c;钉钉上也可以审批&#xff0c;使用H5来适配&#xff0c;统一待办任务 统一待办审批 目标&am…