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

相關文章
相關標籤/搜索