java打包到docker,以及idea远程调试

这里主要介绍 dockerfile的打包方式

一、打包jar包到容器

1. 在要打包的项目中创建dockerfile,dockerfile与项目的pom.xml是同级

在这里插入图片描述

2. 编辑dockerfile文件
FROM openjdk:8
VOLUME ["/data/untitled"]
COPY target/untitled-1.0.jar "/app.jar"
# 你的项目访问端口
EXPOSE 8107
# 预留调试端口
EXPOSE 8106
#  配置启动项 -不调试可以删除掉agentlib部分
# ENTRYPOINT ["java", "-jar", "/app.jar"]
ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8106", "-jar", "/app.jar"]
# java9及以上 address=*:8106

在这里插入图片描述

3. 配置docker

打开运行调试配置
在这里插入图片描述
点击左上的加号 选择新增dockerfile
在这里插入图片描述
配置docker运行参数,如图(指定服务器 dockerfile文件,镜像名,容器名 绑定端口 运行的-itd)
在这里插入图片描述
添加执行前运行
选择maven命令 ,对项目进行先清理后打包
在这里插入图片描述
创建maven的命令 clean package
在这里插入图片描述
运行dockerfile
在这里插入图片描述

一定要查看附加的控制台,如果你构建失败的话也是可以在这里看见错误原因的
在这里插入图片描述

idea调试

由上边的我们已经实现部署到容器中了,现在要做的就是使用idea与容器之间构成通信,方便调试
需要注意的是:远程jvm不能热部署,每次更改了代码,都需要在容器中重新部署一次

1. 创建远程连接

在这里插入图片描述

在这里插入图片描述
debug启动程序,这里我们可以看到,远程连接,只有debug启动,我们去测试的时候,添加断点调试,就可以轻松实现啦
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

开关电源基础认知

前言 从开关电源(BMS充电器)入门硬件之——开关电源基础认知 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com 1.什么是开关电源 开关电源是利用现代电力电子技术,控制开关管开通和关断的时间比率,维…

【vSphere | VM】虚拟机自定义规范Ⅲ —— 创建 Linux 虚拟机自定义规范

目录 4. 创建关于Linux系统的虚拟机自定义规范4.1 新建 Linux 虚拟机自定义规范(1)名称和目标操作系统(2)计算机名称(3)时区(4)自定义脚本(5)网络&#xff08…

Netty03-核心组件NioEventLoopGroup解读

NioEventLoopGroup 可以看到NioEventLoopGroup继承了MultithreadEventExecutorGroup并且实现了EventLoopGroup接口,而这两个类被ExecutorService修饰,所以NioEventLoopGroup实际上是一个线程池,池中的对象其实就是单个的NioEventLoop。 源码…

Java设计模式-工厂模式

目录 一、简单工厂模式 (一)需求 (二)使用传统的方法来完成 (三)传统方法的优缺点 (四)基本介绍 (五)使用简单工厂模式 二、工厂方法模式 &#xff0…

RedisTemplate操作哈希数据

RedisTemplate操作哈希数据 概述常用方法添加哈希数据添加hashMap值判断hashkey 获取哈希数据获取属性值获取hashMap值。获取键值对。获取map键是否有值判断是否有map键。获取键。获取长度。集合方式获取值。匹配获取键值对 自增以double值大小自增。以long值大小自增。 修改删…

IDEA中表明或者字段找不到时报红

问题 idea 中mysql的sql语句报红,无论表名还是表字段 原因 是由于sql方言导致的 当我们选择某一个sql方言的时候,xml配置会按照指定规则校验sql是否规范,并给出提示 解决方案 取消sql方言,设置sql方言为None。设置完重启idea既…

CSS Grid布局入门:从零开始创建一个网格系统

CSS Grid布局入门:从零开始创建一个网格系统 引言 在响应式设计日益重要的今天,CSS Grid布局系统是前端开发中的一次革新。它使得创建复杂、灵活的布局变得简单而直观。本教程将通过分步骤的方式,让你从零开始掌握CSS Grid,并在…

STM32上模拟CH340芯片的功能 (一)

#虚拟串口模拟CH340# 代码gitee地址:STM32F103_CH340: 用STM32模拟ch340USB串口的功能 一、思路 1. 确定通信接口:CH340是一款USB转串口芯片,因此您需要选择STM32上的某个USB接口来实现USB通信。通常情况下,STM32系列芯片都有内…

Halcon联合winform显示以及处理

在窗口中添加窗体和按钮,并在解决方案资源管理器中调加了导入Halcon导出的.cs文件,运行出现下图的问题: 问题1:CS0017 程序定义了多个入口点。使用/main(指定包含入口点的类型)进行编译。 解决方案1.: 右…

SAP UI5 walkthrough step3 Controls

在上一步&#xff0c;我们是直接用index.html 中的body 里面的DIVision去输出 hello world&#xff0c; 在这个章节&#xff0c;我们将用SAP UI5 的标准控件 sap/m/Text 首先&#xff0c;我们去修改 webapp/index.html <!DOCTYPE html> <html> <head><…

jenkins搭建文档

jenkins搭建文档 简介一、安装运行环境1、安装JDK环境1&#xff09;查询自带的JDK2&#xff09;卸载自带的JDK3&#xff09;创建java文件夹并将jdk上传到该文件夹4&#xff09;解压5&#xff09;配置环境变量6&#xff09;配置生效7&#xff09;验证是否成功 2、安装maven环境1…

使用Docker在Debian上构建GRBL模拟器镜像:简明步骤和操作指南

概述编译编写 Dockerfile构建镜像运行测试其他 概述 本文将详细介绍如何在Debian系统上通过Docker构建GRBL模拟器镜像&#xff0c;以便进行数控机床的仿真测试。GRBL是一种开源的控制系统&#xff0c;用于控制三轴CNC机床、激光雕刻、激光切割&#xff0c;而在Docker容器中运…

DouyinAPI接口开发系列丨商品详情数据丨视频详情数据

电商API就是各大电商平台提供给开发者访问平台数据的接口。目前&#xff0c;主流电商平台如淘宝、天猫、京东、苏宁等都有自己的API。 二、电商API的应用价值 1.直接对接原始数据源&#xff0c;数据提取更加准确和完整。 2.查询速度更快&#xff0c;可以快速响应用户请求实现…

Kubernetes(K8s)数据存储-09

数据存储 在前面已经提到&#xff0c;容器的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&#xff0c;保存在容器中的数据也会被清除。这种结果对用户来说&#xff0c;在某些情况下是不乐意看到的。为了持久化保存容器的数据&#xff0c;kubernetes引…

Qt基础-组件的添加、删除或更新

本文介绍如何在Qt中组件的添加、删除或更新。 概述 有时安装完qt后发现当前的组件需要进一步调整,这时就需要进一步操作安装的文件。 QT的组件管理软件并没有在开始菜单或者桌面添加快捷方式(5.9版本),也没有在代码编辑界面设置相关的选项,藏的比较深。 操作步骤 找到…

vue使用甘特图dhtmlxgantt + gantt.addTaskLayer

效果图&#xff1a; 甘特图 官网地址 gantt安装与使用 vue版---部分功能收费 安装gantt 或 引入文件 npm install dhtmlx-gantt -save或import gantt from "/public/static/dhtmlxgantt/dhtmlxgantt.js"; import "/public/static/dhtmlxgantt/locale/local…

如何给Linux硬盘分区?

在Windows操作系统中&#xff0c;磁盘分区是将物理地址分开&#xff0c;再在分区上建立目录。Linux正好相反&#xff0c;是先有目录&#xff0c;再将物理地址映射到目录中。在Linux操作系统中&#xff0c;所有路径都是从根目录开始的。那么如何给Linux硬盘分区呢&#xff1f; L…

Vue3-01-创建项目

环境准备 1.需要用到 16.0 以及更高版本的 node.js 2.使用vscode编辑器进行项目开发可以在命令行中查看node的版本号: node -v创建项目 1.准备一个目录 例如&#xff0c;我创建项目的时候是在该目录下进行的;D:\projectsTest\vue3project2.执行创建命令&#xff08;*&#x…

Qt工程文件分离、Qtimer定时器、Qt Creator 常用快捷键

Qt 工程文件分离 不含 UI 的文件分离 以堆栈窗体的代码为例。 firstpagewidget.h #ifndef FIRSTPAGEWIDGET_H #define FIRSTPAGEWIDGET_H#include <QtWidgets> // 记得修改class firstPageWidget : public QWidget {Q_OBJECT public:explicit firstPageWidget(QW…