IDEA 发布 SpringBoot 项目到 Docker
IDEA 发布 SpringBoot 项目到 Docker。首先使用 IDEA 的 SSH 工具连接到 CentOS 7,然后就可以顺便连接到该 CentOS 7 上的 Docker 。最后直接在 IDEA 里可视化的操作 Docker,就相当于在 CentOS 敲一行一行的命令了。这颗”语法糖“好甜~
Spring Boot 构建 Docker 镜像的几种方式
如今,基于 Spring Boot 构建 Docker 镜像的方式有很多种,例如
Cloud Native Buildpacks
(Spring Boot 2.3+ 版本开始支持)Google
的jib-maven-plugin
fabric8
和spotify
的docker-maven-plugin
以上几种方式基本都是采用各自的 Maven 插件,将仓库配置在 Maven 的 pom.xml
文件里的 <build>
标签里。Spring Boot 可以快速将 Java 应用程序构建为 Docker 镜像推送至指定远程仓库:
- DockerHub 官方公共仓库(DockerHub 官方公共仓库国内访问速度堪忧,不推荐)
- 阿里云镜像仓库(需要在阿里云登录账号自行创建仓库)
- 自建私有镜像仓库
本文不采用以上任何一种方式,打算采用最原始的办法,自己写 Dockerfile,手动打包。然后使用 idea 的 Docker 与 SSH 远程连接功能,远程构建并启动容器。具体过程如下。
条件准备
- IDEA:版本越新越好
ams-0.0.1-SNAPSHOT.jar
:一个集成了 Swagger 的 SpringBoot 演示项目。使用maven clean package
打成的 jar 包,默认生成在/target
目录下,将其拷贝到/resources/static
目录下Dockerfile
:自己手动编写,就放在/resources/static
目录下- 一台装有 Docker 的 CentOS,系统版本 7+。本文里其 ip 为
192.168.62.128
在 IDEA 里配置 SSH
其实有很多种方式,最直接的直接见下图
在 IDEA 里配置 Docker
这里选择 SSH 选项,然后直接选择上文配置好的装有 Docker 的主机即可。
编写 Dockerfile 文件
在 /resources/static
下新建 Dockerfile
文件,编写
# 基础镜像
FROM openjdk
# 作者信息
LABEL maintainer="2466267753@qq.com"
# 开放端口
EXPOSE 8081
# 将 /target 目录下的 ams-0.0.1-SNAPSHOT.jar 复制到 docker 中,并重命名为 ams.jar
ADD ams-0.0.1-SNAPSHOT.jar ams.jar
# 容器执行命令
ENTRYPOINT ["java", "-jar", "ams.jar"]
运行 Dockerfile 文件
在 IDEA 打开写好的 Dockerfile
文件,可以看到左上角有运行标志,直接点击运行
然后可以看到与在 CentOS 上构建时一致的构建日志。可以看到图片右边上方有很多选项:
- 【日志】可以看到 jar 启动日志
- 【属性】可以看到镜像 ID、容器 ID、还可以修改容器名称
- 【环境变量】即容器内的环境变量
- 【端口绑定】可以设置容器端口与宿主机的端口映射,上文 Dockerfile 我们在容器里暴露了 8081 端口,我们映射到宿主机的 18081,点击保存。然后在浏览器输入 http://192.168.45.128:18081/swagger-ui.html 即可打开项目的 swagger 接口文档页面
- 【卷绑定】可以指定主机与容器的路径挂载
- 【文件】容器内的文件目录
总结
到此,项目已经成功部署到 CentOS 的 Docker 上。可以使用 docker ps 查看,确实正在运行。
在上图也可以看到,左侧树形菜单区域,有对容器的管理。相当于点点鼠标,就替代了在 CentOS 命令行下一行一行命令的书写。
对于 IDEA 里的 SSH 配置与使用、IDEA 里的 Docker 的可视化操作还是很方便的,这个“语法糖”确实很甜。
更多推荐
所有评论(0)