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

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

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

step二、在本地配置环境变量:DOCKER_HOST,以下: spring

 

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

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

 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

 

step四、在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>

 

step五、本地执行构建:mvn clean package docker:build并发

 

step六、远程登录服务器,查看docker镜像:docker imagesapp

 

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

相关文章
相关标签/搜索