最近有些童鞋对开源微服务商城项目 youlai-mall 如何部署到线上环境以及项目中 的 文件有疑问,所以写了这篇文章做个答疑以及演示完整的微服务项目发布到线上的流程,当然除此之外也为后续的项目更新计划做一些基础工作。
其实之前是写了 关于 IDEA 整合Docker插件和 依赖构建镜像实现一键部署 应用。
Docker实战 | 第三篇:IDEA集成 Docker 插件实现一键自动打包部署微服务项目
但是上篇文章的“ 一键部署”是有些夸大的,实践过的童鞋应该清楚,在 IDEA 集成 Docker 和项目添加 依赖基础上,部署 应用还需要经过 镜像构建 → 容器配置 → 手动启动容器 这些步骤,所以离一键部署相差甚远。
本篇提供的方案中 IDEA 只需安装 插件,项目不用添加 和 依赖,且在完成首次的相关配置之后,后续只需点击一下 IDEA 的 Run 按钮 ▶️就可以将应用部署远程服务器并且启动,让部署线上应用就是随手点一下的事情。
IDEA 需要连接 Docker 服务器来完成推送镜像和一些交互,需要 Docker 开启远程监听,如果是专网还好,但是公网下开启监听时一定要启用 TLS 协议进行安全加密传输,否则被黑基本上是早晚的事情。
下面是轻身经历得到的教训总结,有想找点乐子的童鞋可以看一下:
Docker实战 | 第五篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结
访问 Docker 配置文件 docker.service
在 追加
重启 Docker 让配置生效
查看 Docker 远程访问服务是否开启
传输层安全性协议(英语:Transport Layer Security,缩写作TLS),及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
-
设置主机名
输入命令 查看服务器主机名,如果存在则忽略,没有则需设置主机名
修改配置之后重启生效
-
TLS 证书生成
创建 TLS 证书存放目录
创建 TLS 证书生成脚本
添加内容
执行 证书生成脚本
红色框部分需要设置证书密码,可以为了方便,填写一致的就行。
进入目录 /etc/docker/cert 把本地需要的3个证书文件 ca.pem 、cert.pem、key.pem 下载到本地文件夹下 , 我的文件夹是
-
配置 Docker 启用 TLS监听
访问 Docker 配置文件 docker.service
在 ExecStart=/usr/bin/dockerd 修改和追加内容如下
重载配置和重启 Docker 生效
查看监听是否开启
安装后重启 IDEA 让插件生效
打开 → → → →
- Engine API URL : Docker 服务器远程监听地址
- Certificates folder : 上文下载 Docker 的证书的文件件
在项目根目录添加 文件
完整内容如下:
添加 spring-boot-maven-plugin 依赖为 应用打包,指定 不带版本号,这样打包出的 jar 包名称就没有版本号。
运行/调试 配置
配置
添加执行目标
输入
点击 保存配置,至此,已完成所有的配置,接下来就是一键部署。
点击 ▶️开始执行
稍等一会儿,就可以看到启动的容器
注册中心可以看到服务在线
本篇通过 IDEA 集成 插件和通过 的方式一键完成 SpringBoot应用的打包 → 构建镜像 → 容器创建和启动 的整套应用部署的流程,没有第三方 依赖,可以说非常的简单便捷,再不会对频繁的应用部署而感到头疼。当然写这篇文章的目的除了解释开源微服务商城 项目中的 作用和有来商城微服务是如何部署到线上之外,还有就是为后续的 + 实现日志收集和线上环境远程调试等等做好基础工作,具体的在后续文章说明。