网站显示内容不显示,免签支付 wordpress,在线教育类网站模板,传媒公司可以做网站么文章目录
1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署 7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问…文章目录
1. 部署项目的传统方式2. 前置工作3. SSH配置4. 连接Docker守护进程5. 创建简单的SpringBoot应用程序6. 编写Dockerfile文件7. 配置远程部署 7.1 创建配置7.2 绑定端口7.3 添加执行前要运行的任务 8. 部署项目9. 开放防火墙的 11020 端口10. 访问项目11. 可能遇到的问题 11.1 Cannot connect to the Docker daemon. Is the docker daemon running?11.2 no main manifest attribute, in /one-click-deployment-0.0.1-SNAPSHOT.jar
更多 IDEA 的使用技巧可查看 IDEA 专栏中的文章IDEA
1. 部署项目的传统方式
我们先来看一下部署项目的传统方式
将项目打成 jar 包将本地打包出来的 jar 包上传到服务器上通过 java -jar 指令启动项目 如果项目需要重新部署需要重新执行一次以上步骤非常麻烦而且传统的部署项目方式也不方便查看日志
今天为大家介绍的 IDEA Docker 一键部署项目正是为了解决这个问题不仅操作简单而且查看日志也非常方便 本次演示的环境为
JDK 17IDEA 2024.2安装了汉化插件的 IDEA英文版的 IDEA 操作类似Ubuntu 22.04 LTSDocker 26.1.3
2. 前置工作
服务器已安装 Docker并且能够正常拉取镜像了解简单 Dockerfile 文件的编写本地电脑已安装 IntelliJ IDEA 开发工具能正常访问接口的 SpringBoot 项目
3. SSH配置
由于需要连接服务器进行远程部署需要先配置 SSH 打开 IDEA 的设置界面 在设置界面中找到 SSH 配置 点击 创建一个新的 SSH 连接填入主机、用户名和密码后点击测试连接 4. 连接Docker守护进程
成功连接 Docker 守护进程后才能执行与 Docker 相关的操作 在设置中找到 Docker点击 选择以 SSH 方法连接到 Docker 守护进程接着点击下拉列表选择刚才创建的 SSH 配置
完成以上操作后点击应用再点击确定 5. 创建简单的SpringBoot应用程序
我们创建一个简单的 SpringBoot 应用程序编写一个简单的接口在 11020 端口上启动项目 import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class HelloWorldController {GetMapping(/)public String index() {return h1Hello, world/h1;}}6. 编写Dockerfile文件
接着需要编写一个用于定义和构建 Docker 镜像的文本文件文件名为 DockerfileDockerfile 中的配置可根据自身项目情况进行调整
one-click-deployment# 基础镜像
FROM openjdk:17# 复制jar包至镜像内
# 复制的目录需放置在与 Dockerfile 文件同级的目录下
ADD target/one-click-deployment-0.0.1-SNAPSHOT.jar /one-click-deployment-0.0.1-SNAPSHOT.jar# 容器启动执行命令
ENTRYPOINT [java, -jar, /one-click-deployment-0.0.1-SNAPSHOT.jar, --spring.profiles.activeprod]# 对外暴露的端口号
EXPOSE 11020jar 包的名称需要与 pom.xml 文件中的配置保持一致 也可以在 Maven 管理界面执行 package 操作后直接复制 jar 包的名称 复制本地的 jar 包至镜像内jar 包所在的目录需放置在与 Dockerfile 文件同级的目录下 至此准备工作已经全部完成接下来即可正式开始配置远程一键部署
7. 配置远程部署
首次配置可能比较繁琐但后续部署项目是真的方便赶紧动手试一下吧
7.1 创建配置 点击 选择 Dockerfile 勾选存储为项目文件这样 IDEA 重启后改配置也会继续保存 自定义名称 服务器选择我们刚才连接的 Docker 守护进程如果没有自动识别可以点击后面的三个小点自行配置 选择我们刚才编写的 Dockerfile 文件 自定义镜像标记 自定义容器名称 one-click-deployment:1.0.0 7.2 绑定端口 根据实际情况填写端口 7.3 添加执行前要运行的任务 选择运行 Maven 目标 添加 clean 和 package 操作 最后点击应用和确定 至此所有配置都已完成
8. 部署项目
点击绿色小三角即可自动完成项目部署如果项目需要重新部署再次点击绿色小三角即可 成功部署之后就能够很方便地在 IDEA 的控制台看到项目的运行日志了 9. 开放防火墙的 11020 端口
如果你使用的是云服务器在安全组中放行 11020 端口如果你安装了宝塔除了在安全组中放行 11020 端口还要在宝塔中放行 11020 端口
完成以上两个操作后输入以下指令开放 11020 端口
Ubuntu
sudo ufw allow 11020sudo ufw reloadCentOS
sudo firewall-cmd --zonepublic --add-port11020 /tcp --permanentsudo firewall-cmd --reload10. 访问项目
在浏览器输入以下网址访问项目将 ip 地址更改为你的服务器的地址
http://127.0.0.1:11020/访问成功后的界面 11. 可能遇到的问题
11.1 Cannot connect to the Docker daemon. Is the docker daemon running
如果你点击小三角后部署失败并且 IDEA 给出了以下提示可能是因为 SSH 配置中的用户并没有连接 Docker 的权限
Cannot connect to the Docker daemon. Is the docker daemon running 解决方法将 SSH 配置中的用户添加到 docker 用户组
sudo usermod -aG docker $USER运行以下指令确保SSH 配置中的用户已经成功添加到 docker 用户组
getent group docker注意添加用户到 docker 用户组后需要重启 IDEA 成功连接 Docker 后的界面 11.2 no main manifest attribute, in /one-click-deployment-0.0.1-SNAPSHOT.jar 错误信息 “no main manifest attribute, in /one-click-deployment-0.0.1-SNAPSHOT.jar” 表明 JAR 文件中没有指定主类即程序的入口点
之所以产生这种情况有可能是因为项目的 pom.xml 文件没有指定主类也有可能是因为 SpringBoot 打包插件没生效 解决方法修改项目的 pom.xml 文件同时确保 SpringBoot 打包插件生效了skip 属性默认为 false表示启用打包插件