经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Maven » 查看文章
Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器
来源:cnblogs  作者:funnyboy0128  时间:2018/11/20 10:20:07  对本文有异议

我们知道,docker能实现应用打包隔离,实现快速部署和迁移。如果我们开发应用使用了spring cloud + spring boot架构,那么,通过docker-maven-plugin实现快速构建镜像并发布到远程docker服务器会非常方便。相关步骤参考如下:

step1、开启docker服务器的tcp管理端口,这里以2375为例进行说明。具体的配置过程请参考另一篇博客:
https://www.cnblogs.com/funnyboy0128/p/9983779.html

step2、在本地配置环境变量:DOCKER_HOST,如下: 

 

step3、在应用中src/main下新建docker文件夹,并编写Dockerfile和runboot.sh文件

Dockerfile主要用来构建镜像,参考示例如下:

  1. 1 FROM java:8
  2. 2 MAINTAINER funnyboy
  3. 3 VOLUME /tmp
  4. 4 RUN mkdir /app
  5. 5 ADD docker-app-0.0.1-SNAPSHOT.jar /app/app.jar
  6. 6 ADD runboot.sh /app/
  7. 7 RUN bash -c 'touch /app/app.jar'
  8. 8 WORKDIR /app
  9. 9 RUN chmod a+x runboot.sh
  10. 10 EXPOSE 5678
  11. 11
  12. 12 CMD /app/runboot.sh

 

runboot.sh为应用启动脚本,参考如下:

  1. 1 java -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar

 

step4、在pom中添加docker-maven-plugin插件配置,关键代码如下:

  1. 1 <build>
  2. 2 <plugins>
  3. 3 <plugin>
  4. 4 <groupId>org.springframework.boot</groupId>
  5. 5 <artifactId>spring-boot-maven-plugin</artifactId>
  6. 6 </plugin>
  7. 7 <plugin>
  8. 8 <groupId>com.spotify</groupId>
  9. 9 <artifactId>docker-maven-plugin</artifactId>
  10. 10 <version>0.4.3</version>
  11. 11 <configuration>
  12. 12 <!-- 镜像名称 -->
  13. 13 <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
  14. 14 <!-- 指定Dockerfile 文件的位置 -->
  15. 15 <dockerDirectory>src/main/docker</dockerDirectory>
  16. 16 <!-- 指定哪些文件需要和 Dockerfile放在一起,一般jar包需要 -->
  17. 17 <resources>
  18. 18 <resource>
  19. 19 <targetPath>/</targetPath>
  20. 20 <directory>${project.build.directory}</directory>
  21. 21 <include>${project.build.finalName}.jar</include>
  22. 22 </resource>
  23. 23 </resources>
  24. 24 </configuration>
  25. 25 </plugin>
  26. 26 </plugins>
  27. 27 </build>
  28. 28 <properties>
  29. 29 <docker.image.prefix>funnyboy</docker.image.prefix>
  30. 30 <project.artifactId>docker-app</project.artifactId>
  31. 31 <project.build.finalName>app</project.build.finalName>
  32. 32 </properties>

 

step5、本地执行构建:mvn clean package docker:build

 

step6、远程登陆服务器,查看docker镜像:docker images

 

经过上述步骤,就已经成功实现了构建spring cloud+spring boot应用,并将镜像发布到远程docker服务器。

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号