IDEA+Docker插件一键部署SpringBoot项目到远程服务器
文章目录
- 1. 服务端
- 1.1 安装Docker
- 1.2 Docker放开远程连接
- 1.3 重启Docker
- 1.4 开放端口
- 1.4.1 云端
- 1.4.2 服务器内部防火墙指令
- 2.IntelliJ IDEA
- 2.1 安装IDEA
- 2.2 安装Docker插件
- 2.3 SSH Configurations
- 2.4 Docker选择对应的SSH
- 2.5 Dockerfile
- 2.5.1 Dockerfile
- 2.5.2 Dockerfile Edit Run Configuration
- 2.5.2.1 Maven全局指令
- 2.5.2.2 配置镜像映射端口
- 2.5.2.3 补充说明1
- 2.5.2.4 补充说明2
- 2.6 Maven
- 2.6.1 安装Maven
- 2.6.2 pom.xml 相关Docker部署配置
1. 服务端
1.1 安装Docker
默认安装Docker,直接跳过
1.2 Docker放开远程连接
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service## 添加 -H tcp://0.0.0.0:2375......
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always......
1.3 重启Docker
systemctl daemon-reload
systemctl start docker
1.4 开放端口
1.4.1 云端
开放防火墙的 9090 端口
- 如果你使用的是云服务器,在安全组中放行 9090 端口
- 如果你安装了宝塔,除了在安全组中放行 9090 端口,还要在宝塔中放行 9090
端口
1.4.2 服务器内部防火墙指令
# ubuntu
sudo ufw allow 9090
sudo ufw reload# centos
sudo firewall-cmd --zone=public --add-port=9090 /tcp --permanent
sudo firewall-cmd --reload
2.IntelliJ IDEA
版本:IntelliJ IDEA 2023.1 (Ultimate Edition)
需要部署时候,建议使用管理员运行IDEA
2.1 安装IDEA
默认安装IDEA,跳过安装
2.2 安装Docker插件
File | Settings | Plugins

2.3 SSH Configurations
File | Settings | Tools | SSH Configurations

2.4 Docker选择对应的SSH
File | Settings | Build, Execution, Deployment | Docker

2.5 Dockerfile
fdy-live-user-provider/docker/Dockerfile

2.5.1 Dockerfile
FROM openjdk:17-jdk-alpine
VOLUME /tmp
COPY target/fdy-live-user-provider-docker.jar /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2.5.2 Dockerfile Edit Run Configuration
编辑Dockerfile配置框

重点:Context folder 里面填写项目的根<fdy-live-user-provider>, 默认fdy-live-user-provider/docker,会导致检索不了target文件夹,从而获取不了对应的Jar包
2.5.2.1 Maven全局指令

clean package -Dautoconfig.interative=false -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
2.5.2.2 配置镜像映射端口

2.5.2.3 补充说明1

2.5.2.4 补充说明2

2.6 Maven
2.6.1 安装Maven
默认安装,跳过
2.6.2 pom.xml 相关Docker部署配置
重点:<build>标签部分
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.idea</groupId><artifactId>fdy-live-app</artifactId><version>1.0-SNAPSHOT</version></parent><version>1.0.1</version><artifactId>fdy-live-user-provider</artifactId><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><maven.compiler.compilerVersion>17</maven.compiler.compilerVersion></properties><dependencies></dependencies><build><finalName>${artifactId}-docker</finalName><plugins><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.2</version><executions><!-- 当mvn执行install操作的时候,执行docker的build --><execution><id>build</id><phase>install</phase><goals><goal>build</goal></goals></execution></executions><configuration><!--覆盖相同标签镜像--><forceTags>true</forceTags><imageTags><imageTag>${project.version}</imageTag></imageTags><imageName>${project.build.finalName}</imageName><!--指定Dockerfile文件的位置--><dockerDirectory>${project.basedir}/docker</dockerDirectory><!-- 指定jar包路径,这里对应Dockerfile中复制 jar 包到 docker 容器指定目录配置,也可以写到 Docokerfile 中 --><resources><resource><targetPath>/</targetPath><!-- 将下边目录的内容,拷贝到docker镜像中 --><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 项目基于maven pom多模块的开发的,需要设置goal-repackage属性为true,否则打包后文件依赖文件没有一起打包,然后镜像内没有可以运行的程序文件 --><executions><execution><goals><goal>repackage</goal></goals></execution></executions><configuration><includeSystemScope>true</includeSystemScope></configuration></plugin></plugins></build>
</project>
相关文章:
IDEA+Docker插件一键部署SpringBoot项目到远程服务器
文章目录 1. 服务端1.1 安装Docker1.2 Docker放开远程连接1.3 重启Docker1.4 开放端口1.4.1 云端1.4.2 服务器内部防火墙指令 2.IntelliJ IDEA2.1 安装IDEA2.2 安装Docker插件2.3 SSH Configurations2.4 Docker选择对应的SSH2.5 Dockerfile2.5.1 Dockerfile2.5.2 Dockerfile Ed…...
【SoC基础】单片机之RCC模块
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
机器学习之梯度消失和梯度爆炸
文章目录 梯度消失1. 原理2. 影响3. 易出现情况4. 解决方法5. 编程实战案例 梯度爆炸1. 原理2. 影响3. 易出现情况4. 解决方法5. 编程实战案例 常用权重初始化方法及其影响1. 随机初始化2. Xavier初始化(Glorot初始化)3. Kaiming初始化(He初始…...
C++基础 [五] - String的模拟实现
目录 前言 string类的模拟实现 成员函数的实现 构造函数 拷贝构造函数 赋值运算符重载 析构函数 元素访问的实现 operator[ ] Iterator - 迭代器 容量大小的实现 size capacity reserve 编辑resize 内容修改的实现 push_back append operator(char ch) …...
LLVM学习-- 构建和安装
一 LLVM版本 二 适用预构建的二进制文件安装LLVM 三 适用包管理器安装LLVM 四 从源码构建用于Linux的LLVM 五 从源码构建用于Windows和Visual Studio的LLVM 六 从源码构建用于MacOS 和XCode的LLVM 1.1 LLVM项目从10年前第一次发布到版本3.4,其SVN存储库包含了超过20…...
python中使用单例模式在整个程序中只创建一个数据库连接,节省资源
示例代码: from loguru import logger from pymongo import MongoClient from pymongo.errors import ConnectionFailurefrom llm_engineering.settings import settingsclass MongoDatabaseConnector:_instance: MongoClient | None Nonedef __new__(cls, *args,…...
AIAgent有哪些不错的开源平台
AIAgent领域有许多优秀的开源平台和框架,以下是一些值得推荐的开源平台: AutoGPT AutoGPT 是一个基于 OpenAI 的 GPT-4 和 GPT-3.5 大型语言模型的开源框架,能够根据用户给定的目标自动生成所需提示,并利用多种工具 API 执行多步骤…...
Python刷题:流程控制(上)
今天刷的是PythonTip的Python 入门挑战中的题,整体难度不高,适合小白练手以及巩固知识点。下面会进行详细讲解。 每日一句 每一个拼命努力的人,都像是独自穿越黑暗森林的行者, 没有并肩的身影,唯有孤独如影随形&…...
vulhub/Billu_b0x靶机----练习攻略
1.Billu_b0x靶场下载链接: https://download.vulnhub.com/billu/Billu_b0x.zip 2.下载后,解压出ova文件,直接拖至VMware中,重命名和选择存储位置,点击导入,报错点击重试即可。修改网卡为NAT模式。 打开靶…...
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
主页:HABUO🍁主页:HABUO 🍁YOLOv8入门改进专栏🍁 🍁如果再也不能见到你,祝你早安,午安,晚安🍁 【YOLOv8改进系列】: 【YOLOv8】YOLOv8结构解读…...
Qwen2-Audio:通义千问音频大模型技术解读
引言:从llm到mlm(audio) 大型语言模型(LLM)的发展日新月异,它们在文本理解、生成、推理等方面展现出惊人的能力。然而,交互模态不仅仅依赖于文字,语音、语调、环境音等听觉信息同样承载着丰富的内容。阿里巴巴通义千问团队,推出了 Qwen-Audio 系列模型,这里我们一起…...
解决 开发FFMPEG视频播放器右侧白色线问题
在开发基于 Qt 和 FFmpeg 的视频播放器时,我遇到一个常见但令人困惑的问题:在使用 VideoWidget(继承自 QOpenGLWidget)播放某些视频时,窗口右侧会出现一条白色线。这不仅影响视觉效果,还可能暴露潜在的渲染或缓冲区问题。本文将详细分析这一现象的成因,并提供经过验证的…...
解决Java多张图合成JPG时出现红色前景及多列自适应适配
目录 前言 一、追本溯源 1、回到最开始 2、合成JPG的异常 二、解决问题 1、关于ImageType 2、TYPE_INT_RGB和TYPE_INT_ARGB 3、问题修复 4、列数自适应的问题 三、总结 前言 在当今数字化信息飞速发展的时代,图像处理技术在各个领域都占据着举足轻重的地位…...
SpringBoot实现发邮件功能+邮件内容带模版
发送简单邮件模版邮件 1.pom引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.5.13</version></dependency><dependency><groupId&…...
npm 报错 unable to resolve dependency tree
如下图: 解决:npm install --legacy-peer-deps 其实提示上有:npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-peer-deps...
【蓝桥杯每日一题】3.17
🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x 他们说内存泄漏是bug,我说这是系统在逼我进化成SSR级程序员 OK来吧,不多废话,今天来点有难度的:二进制枚举 二进制枚举,就是…...
leetcode刷题之-整数反转
又开始刷题了,最近在刷这题 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号…...
Linux:冯诺依曼体系结构、操作系统、进程概念(一.初识进程)
文章目录 1.冯诺依曼体系结构总线与数据传输通路为什么有内存这个部分计算机存储结构 2.操作系统(Operator System)2.1 概念2.2 设计OS的目的2.3 理解“管理”先描述再组织 2.4 用户使用系统调用和库函数(lib)概念 总结 3.初识进程3.1 基本事实与引入3.2…...
动手学深度学习:CNN和LeNet
前言 该篇文章记述从零如何实现CNN,以及LeNet对于之前数据集分类的提升效果。 从零实现卷积核 import torch def conv2d(X,k):h,wk.shapeYtorch.zeros((X.shape[0]-h1,X.shape[1]-w1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):Y[i,j](X[i:ih,j:jw…...
C语言 常用系统函数
<string.h> 头文件中的字符串函数 标准库的头文件 <string.h> 中,有三个常用的字符串函数: 函数名 描述 strlen(str) 返回str的长度,类型是 size_t strcpy(str1,str2) 将str2中的字符串复制到str1中 strcat(str1,str2) 将…...
删除排序链表中的重复元素(js实现,LeetCode:83)
看到这道题的第一反应是使用快慢指针,之前做过类似的题:删除有序数组中的重复项(js实现,LeetCode:26)原理都是一样,区别是这题需要将重复项删除,所以只需要走一遍单循环就可以实现 /*** Defini…...
【嵌入式学习】如何利用gitee管理记录学习内容
# 新建git仓库并连接到本地 ## 查看本地是否下载git git --version ## 全局配置git git config --global user.name "你的用户名" git config --global user.email "你的邮箱" git config --global credential.helper store ## 初始化本地仓库 git…...
C#入门学习记录(四)C#运算符详解:掌握算术与条件运算符的必备技巧+字符串拼接
一、运算符概述 运算符是程序进行数学运算、逻辑判断的核心工具,C#中的运算符分为: 算术运算符 → 数学计算( - * / %) 条件运算符 → 三目判断(?:) 关系运算符 → 比较大小(> < &#…...
单片机自学总结
自从工作以来,一直努力耕耘单片机,至今,颇有收获。从51单片机,PIC单片机,直到STM32,以及RTOS和Linux,几乎天天在搞:51单片机,STM8S207单片机,PY32F003单片机,…...
Unity教程(二十二)技能系统 分身技能
Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…...
HTML5扫雷游戏开发实战
HTML5扫雷游戏开发实战 这里写目录标题 HTML5扫雷游戏开发实战项目介绍技术栈项目架构1. 游戏界面设计2. 核心类设计 核心功能实现1. 游戏初始化2. 地雷布置算法3. 数字计算逻辑4. 扫雷功能实现 性能优化1. DOM操作优化2. 算法优化 项目亮点技术难点突破1. 首次点击保护2. 连锁…...
【Git学习笔记】Git分支管理策略及其结构原理分析
【Git学习笔记】Git分支管理策略及其结构原理分析 🔥个人主页:大白的编程日记 🔥专栏:Git学习笔记 文章目录 【Git学习笔记】Git分支管理策略及其结构原理分析前言一.合并冲突二. 分支管理策略2.1 分支策略2.2 bug分支2.3 删除临…...
Spring Cloud Alibaba Nacos 2023.X 配置问题
文章目录 问题现象(一)解决方法(一)问题现象(二)解决方法(二)问题现象(三)解决方法(三) 问题现象(一) Spring…...
厨卫行业供应链产销协同前中后大平台现状需求分析报告+P120(120页PPT)(文末有下载方式)
资料解读:厨卫行业供应链产销协同前中后大平台现状需求分析报告 详细资料请看本解读文章的最后内容。在当前厨卫行业竞争激烈的市场环境下,企业的发展战略和业务模式创新至关重要。本次解读的报告围绕某厨卫企业展开,深入探讨其供应链产销协同…...
我在哪,要去哪
在直播间听到一首好听的歌《我在哪,要去哪》-汤倩。 遇见的事:21~24号抽调去招生。 感受到的情绪:公假吗?给工作量吗?月工作量不够扣钱吗?报销方便吗?有事情,从来不解决后顾&#x…...
