上一节我们学习了如何手动的构建镜像并最终把服务发布到 docker 环境,其实强大的 idea 已经为我们预制了这方面的支持,我们只需要几个简单的配置就可以一键把应用发布到 docker 环境。
vi /lib/systemd/system/docker.service
修改 ExecStart=/usr/bin/dockerd ‐H tcp://0.0.0.0:12345 ‐H unix:///var/run/docker.sock

打开 idea(我这里使用的是 IDEA 2021.2.2),默认已经安装了 docker 插件。通过 file -> settings -> Build,Execution,Deployment -> Docker添加 docker 的配置 docker 的地址。

配置完成,正常的前开光可以看到下面的 Connection successful,如果连接不上,修改宿主机的防火墙配置,开放 12345(自定义) 端口。如果是云主机,修改其安全组策略,开放对应的端口。
连接上 docker 以后,我们只需要简单的配置就可以直接把服务部署到 docker 上了。
编辑 idea 的 Run/Debug Configurations

你没看错,只需要简单的配置这基础地方,接下来就是见证奇迹的时刻了。
点击运行:

你没看错,这就把服务部署上去了!!
查看 docker 服务:

我们的服务确实已经不上成功了!
接口也可以正常访问了

当然,也可以基于 maven 的插件来实现,只需要添加 docker-maven-plugin 插件,也可以通过 maven 把服务镜像推到 docker 镜像仓库
<plugin>
<groupId>com.spotifygroupId>
<artifactId>docker-maven-pluginartifactId>
<version>1.0.0version>
<executions>
<execution>
<id>build-imageid>
<phase>packagephase>
<goals>
<goal>buildgoal>
goals>
execution>
executions>
<configuration>
<imageName>${project.artifactId}imageName>
<imageTags>
<imageTag>latestimageTag>
imageTags>
<dockerDirectory>${project.basedir}dockerDirectory>
<dockerHost>http://ip:12345dockerHost>
<resources>
<resource>
<targetPath>/targetPath>
<directory>${project.build.directory}directory>
<include>${project.build.finalName}.jarinclude>
resource>
resources>
configuration>
plugin>
plugins>
build>
到这里,我们的目标基本就完成了,但是有一个小瑕疵,我们的docker 现在是开放了 对所有客户端的远程访问,这样很不安全,可以参考这篇博客生成证书校验。今天的分享就到这里,各位晚安。