Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器

我们知道,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 FROM java:8
 2 MAINTAINER funnyboy
 3 VOLUME /tmp
 4 RUN mkdir /app
 5 ADD docker-app-0.0.1-SNAPSHOT.jar /app/app.jar
 6 ADD runboot.sh /app/
 7 RUN bash -c ‘touch /app/app.jar‘
 8 WORKDIR /app
 9 RUN chmod a+x runboot.sh
10 EXPOSE 5678
11
12 CMD /app/runboot.sh

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/funnyboy0128/p/9986300.html

时间: 2024-08-26 07:13:56

Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器的相关文章

eclipse maven plugin 插件 安装 和 配置

环境准备: eclipse(Helios) 3.6 maven 3.0.4 maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache 下的一个项目,目前最新版本是 3.0.4,我用的也是这个. 首先去官网下载 Maven:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.4-bin.tar.gz 下载完成之后将其解压,我将解压后的文件夹重命名成 mave

eclipse maven plugin 插件 安装 和 配置(2)

eclipse maven plugin 插件 安装 和 配置(2) 就像上篇文章所说,折腾一会终于安装完成,终于松了一口气,不料再次打开eclipse时又有错误信息,在网上找了找,找了篇比较详细的,原文地址: http://www.sunchis.com/html/hsware/software/2011/1102/371.html 在Eclipse中安装了m2eclipse(maven插件),安装完成后重启Eclipse,出现下列警告:Please make sure the -vm opt

eclipse maven plugin 插件 安装 和 配置(1)

昨天配置在eclipse中配置maven,遇到的问题还不少,上网查了查相关的方法,总算最终解决了 原文地址:http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html 环境准备: eclipse(Helios) 3.6maven 3.0.4 maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache 下的一个项目,目前最新版本是 3.0.4

Tomcat Maven Plugin部署Maven Web应用

Tomcat官方提供了Maven插件用于部署基于Maven的Web应用,不同版本Tomcat使用的插件不同,不同版本插件的使用也有一定区别,详细信息可参考http://tomcat.apache.org/maven-plugin.html.下面记录的是我在Eclipse环境中使用Tomcat Maven Plugin-2.2在Tomcat7中部署Maven Web应用的配置过程: 第一步:配置Tomcat manager用户: 打开Tomcat根目录下conf目录中的tomcat_user.xm

Spring Boot Maven Plugin -- repackage目标

简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot 应用一起工作.总的有: spring-boot:repackage spring-boot:run spring-boot:start and spring-boot:stop spring-boot:build-info repackage:创建一个自动可执行的jar或war文件.它可以替换常规的

maven tomcat 插件实现热部署

tomcat 的maven插件有助于提高开发效率,原因是: --可以直接把项目发布到远程的服务器上. --能够实现项目的热部署,在开发过程中修改了Java类,不需要重启tomcat 首先配置一个tomcat的管理用户 1.修改tomcat根路径下conf/tomcat-users.xml    为tomcat添加用户配置 <role rolename="manager-gui"/> <role rolename="manager-script"/&

Versions maven plugin 修改版本

使用versions maven plugin插件,批量修改项目各模块的版本号,灵活推进或回退版本,避免主干每次更新代码,立即对所有分支产生影响. https://blog.csdn.net/sunzhenhua0608/article/details/81628653 Maven Versions Plugin(1)——更新项目版本 https://blog.csdn.net/weixin_29477879/article/details/52270118 <plugin> <grou

maven自动部署到远程tomcat教程

使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配置tomcat的manager 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了) <role rolename="manager-gui"/> <role rolename="m

有容云——窥探Docker中的Volume Plugin内幕

编者注: 本文根据有容云技术实施团队原创分享内容整理.对Docker技术感兴趣.或对本文中细节需继续探讨的朋友,欢迎加入我们参与讨论! 特别鸣谢中生代技术群分享支持. 注:本期分享由张朝潞原创,有容云整理发布,转载请注明出处 作者介绍: 张朝潞,有容云(Yourun Cloud)平台存储架构师.曾工作于UIT,华三,腾讯,专注分布式存储的研究和开发,对云计算存储解决方案方面有很深的技术造诣和行业理解. 本次交流将与大家分享Docker Volume plugin相关的内容.今日主题是窥探Dock