国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Maven插件構建SpringBoot項目,生成Docker鏡像push到DockerHub上

Drummor / 2715人閱讀

摘要:一個用于構建和推送鏡像的插件。這樣即可使用進行構建鏡像啦。構建鏡像使用命令啟動鏡像訪問服務瀏覽器輸入宿主機能夠正常看到界面文章開頭的最終效果頁面。

一個用于構建和推送Docker鏡像的Maven插件。

使用Maven插件構建Docker鏡像,將Docker鏡像pushDockerHub上,或者私有倉庫,上一篇文章是手寫Dockerfile,這篇文章借助開源插件docker-maven-plugin 進行操作

以下操作。默認你已經閱讀過我上一篇文章:

Docker 部署 SpringBoot 項目整合 Redis 鏡像做訪問計數Demo

http://www.ymq.io/2018/01/11/Docker-deploy-spring-boot-Integrate-redis

最終效果

環境準備

系統:Ubuntu 17.04 x64

Docker 17.12.0-ce

Ubuntu 17.04 x64 安裝 Docker CE

http://www.ymq.io/2018/01/11/Docker-Install-docker-ce/

插件地址

docker-maven-plugin

GitHub 地址:https://github.com/spotify/docker-maven-plugin

一、簡單使用 1.修改POM

pom.xml中添加下面這段,


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        

        
        
            com.spotify
            docker-maven-plugin
            0.4.12
            
                
                
                microservice-discovery-eureka
                java
                ["java", "-jar", "/${project.build.finalName}.jar"]
                
                    
                        /
                        ${project.build.directory}
                        ${project.build.finalName}.jar
                    
                
            
        

    
2.構建鏡像

使用 maven 命令: mvn clean package docker:build

& cd /opt/other-projects/docker-spring-boot-demo-maven-plugin
& mvn clean package docker:build

我們會發現控制臺有類似如下內容:

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ docker-spring-boot-demo-maven-plugin ---
[INFO] Building jar: /opt/other-projects/docker-spring-boot-demo-maven-plugin/target/docker-spring-boot-demo-maven-plugin-0.0.1-SNAPSHOT.jar
[INFO] 
[INFO] --- spring-boot-maven-plugin:1.5.9.RELEASE:repackage (default) @ docker-spring-boot-demo-maven-plugin ---
[INFO] 
[INFO] --- docker-maven-plugin:0.4.12:build (default-cli) @ docker-spring-boot-demo-maven-plugin ---
[INFO] Copying /opt/other-projects/docker-spring-boot-demo-maven-plugin/target/docker-spring-boot-demo-maven-plugin-0.0.1-SNAPSHOT.jar -> /opt/other-projects/docker-spring-boot-demo-maven-plugin/target/docker/docker-spring-boot-demo-maven-plugin-0.0.1-SNAPSHOT.jar
[INFO] Building image docker-spring-boot-demo-maven-plugin
Step 1/3 : FROM java

 ---> d23bdf5b1b1b
Step 2/3 : ADD /docker-spring-boot-demo-maven-plugin-0.0.1-SNAPSHOT.jar //

 ---> b5d8f92756f2
Step 3/3 : ENTRYPOINT ["java", "-jar", "/docker-spring-boot-demo-maven-plugin-0.0.1-SNAPSHOT.jar"]

 ---> Running in 6867f460b40c
Removing intermediate container 6867f460b40c
 ---> 378fd82432e0
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 378fd82432e0
Successfully tagged docker-spring-boot-demo-maven-plugin:latest
[INFO] Built docker-spring-boot-demo-maven-plugin
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.568 s
[INFO] Finished at: 2018-01-15T09:21:39+00:00
[INFO] Final Memory: 37M/89M
[INFO] ------------------------------------------------------------------------
root@souyunku:/opt/other-projects/docker-spring-boot-demo-maven-plugin#

恭喜,構建成功了。

-我們執行docker images 會發現該鏡像已經被構建成功:

& root@souyunku:# docker images docker-spring-boot-demo-maven-plugin
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
docker-spring-boot-demo-maven-plugin   latest              378fd82432e0        3 minutes ago       659MB
3.啟動鏡像
root@souyunku:# docker run --name MySpringBootMavenPlugin -d -p 8080:80 docker-spring-boot-demo-maven-plugin
84ebb2ebb8c002d3935e6e31c6d2aab05c32c075036368228e84f818d20ded4a
4.查看容器
& root@souyunku:# docker container ps -a
CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
84ebb2ebb8c0        docker-spring-boot-demo-maven-plugin   "java -jar /docker-s…"   About an hour ago   Up About an hour    0.0.0.0:8080->80/tcp     MySpringBootMavenPlugin
5.訪問服務

瀏覽器輸入:http://Docker宿主機IP:8080能夠正常看到界面,文章開頭的最終效果頁面。

二、使用Dockerfile 1.新建Dockerfile

使用Dockerfile進行構建Docker鏡像

上文講述的方式是最簡單的方式,很多時候,我們還是要借助Dockerfile進行構建的,
首先我們在/docker-spring-boot-demo-maven-plugin/src/main/resources目錄下,建立文件Dockerfile

FROM java:8
VOLUME /tmp
ADD docker-spring-boot-demo-maven-plugin-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c "touch /app.jar"
EXPOSE 9000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2.修改POM

項目pom.xml修改為如下: 指定Dockerfile所在的路徑


    
        
        
            com.spotify
            docker-maven-plugin
            0.4.12
            
                
                
                docker-spring-boot-demo-maven-plugin
                
                ${basedir}/src/main/resources
                
                    
                        /
                        ${project.build.directory}
                        ${project.build.finalName}.jar
                    
                
            
        
    
3.構建鏡像

使用 maven 命令: mvn clean package docker:build

& cd /opt/other-projects/docker-spring-boot-demo-maven-plugin
& mvn clean package docker:build
4.啟動鏡像
root@souyunku:# docker run --name MySpringBootMavenPlugin -d -p 8080:80 docker-spring-boot-demo-maven-plugin
84ebb2ebb8c002d3935e6e31c6d2aab05c32c075036368228e84f818d20ded4a

其他步驟和上面一樣。這樣即可使用Dockerfile進行構建Docker鏡像啦。

5.訪問服務

瀏覽器輸入:http://Docker宿主機IP:8080能夠正常看到界面,文章開頭的最終效果頁面。

三、push 鏡像

Docker鏡像pushDockerHub

1.修改Maven配置

首先修改Maven的全局配置文件settings.xml

查看settings.xml 所在位置

root@souyunku:# find / -name settings.xml
/etc/maven/settings.xml

添加以下段落

vi /etc/maven/settings.xml

    
        docker-hub
        DockerHub 的賬號
        DockerHub 的密碼
        
            admin@souyunku.com
        
    
2.創建Repository

注冊個賬號:https://hub.docker.com/

DockerHub上創建Create Repository ,例如:docker-spring-boot-demo-maven-plugin,如下圖

3.修改POM

項目pom.xml修改為如下:注意imageName的路徑要和repo的路徑一致

鏡像名稱


    souyunku

Docker鏡像pushDockerHub





    com.spotify
    docker-maven-plugin
    0.4.12
    
        
        
        
        ${docker.image.prefix}/${project.artifactId}
        
        ${basedir}/src/main/resources
        
            
                /
                ${project.build.directory}
                ${project.build.finalName}.jar
            
        
        
        docker-hub
        https://index.docker.io/v1/
    
4.構建鏡像

使用 maven 命令: mvn clean package docker:build -DpushImage

& cd /opt/other-projects/docker-spring-boot-demo-maven-plugin
& mvn clean package docker:build  -DpushImage

看到類似這樣的數據,就證明構建鏡像沒毛病

[INFO] Building image souyunku/docker-spring-boot-demo-maven-plugin
Step 1/6 : FROM java:8

 ---> d23bdf5b1b1b
Step 2/6 : VOLUME /tmp

 ---> Using cache
 ---> cb237cc84527
Step 3/6 : ADD docker-spring-boot-demo-maven-plugin-0.0.1-SNAPSHOT.jar app.jar

 ---> 7fb5e3363ed5
Step 4/6 : RUN bash -c "touch /app.jar"

 ---> Running in ab5d10dd64ad
Removing intermediate container ab5d10dd64ad
 ---> 05d96fe59da4
Step 5/6 : EXPOSE 9000

 ---> Running in d63e20122d8e
Removing intermediate container d63e20122d8e
 ---> 55ba378141fd
Step 6/6 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 ---> Running in 962d476363a3
Removing intermediate container 962d476363a3
 ---> 654b596fe91f
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 654b596fe91f
Successfully tagged souyunku/docker-spring-boot-demo-maven-plugin:latest
[INFO] Built souyunku/docker-spring-boot-demo-maven-plugin
[INFO] Pushing souyunku/docker-spring-boot-demo-maven-plugin
The push refers to repository [docker.io/souyunku/docker-spring-boot-demo-maven-plugin]
464800d90790: Pushed 
d52b146f9147: Pushed 
35c20f26d188: Mounted from souyunku/docker-spring-boot-demo 
c3fe59dd9556: Mounted from souyunku/docker-spring-boot-demo 
6ed1a81ba5b6: Mounted from souyunku/docker-spring-boot-demo 
a3483ce177ce: Mounted from souyunku/docker-spring-boot-demo 
ce6c8756685b: Mounted from souyunku/docker-spring-boot-demo 
30339f20ced0: Mounted from souyunku/docker-spring-boot-demo 
0eb22bfb707d: Mounted from souyunku/docker-spring-boot-demo 
a2ae92ffcd29: Mounted from souyunku/docker-spring-boot-demo 
latest: digest: sha256:8d78ced0034f38be8086c8f812817ec4c12b178470b4cea668046906c825c9ee size: 2424
null: null 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 41.764 s
[INFO] Finished at: 2018-01-16T09:56:23+00:00
[INFO] Final Memory: 36M/88M
[INFO] ------------------------------------------------------------------------
root@souyunku:/opt/other-projects/docker-spring-boot-demo-maven-plugin# 
5.查看鏡像
root@souyunku:# docker images souyunku/docker-spring-boot-demo-maven-plugin 
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
souyunku/docker-spring-boot-demo-maven-plugin   latest              654b596fe91f        27 minutes ago      674MB
root@souyunku:# docker images souyunku/docker-spring-boot-demo-maven-plugin 
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
souyunku/docker-spring-boot-demo-maven-plugin   latest              654b596fe91f        27 minutes ago      674MB

Docker Hub 查看鏡像,看到已經上傳成功

6.啟動鏡像
root@souyunku:# docker run --name MySpringBootMavenPlugin -d -p 8080:80 docker-spring-boot-demo-maven-plugin
84ebb2ebb8c002d3935e6e31c6d2aab05c32c075036368228e84f818d20ded4a

其他步驟和上面一樣。這樣即可使用Dockerfile進行構建Docker鏡像啦。

7.訪問服務

瀏覽器輸入:http://Docker宿主機IP:8080能夠正常看到界面,文章開頭的最終效果頁面。

四、綁定phase執行

將插件綁定在某個phase執行

在很多場景下,我們有這樣的需求,例如執行mvn clean package 時,自動地為我們構建docker鏡像,可以嗎?答案是肯定的。我們只需要將插件的goal 綁定在某個phase即可。

所謂的phasegoal,可以這樣理解:maven命令格式是:mvn phase:goal ,例如mvn package docker:build 那么,packagedocker 都是phase,build 則是goal

1.修改POM

下面是示例:

首先配置屬性:


    souyunku

    com.spotify
    docker-maven-plugin
    0.4.12
    
    
        
            build-image
            package
            
                build
            
        
    
    
    
        
        
        
        ${docker.image.prefix}/${project.artifactId}
        
        ${basedir}/src/main/resources
        
            
                /
                ${project.build.directory}
                ${project.build.finalName}.jar
            
        
        
        docker-hub
        https://index.docker.io/v1/
    

新加內容


    
        build-image
        package
        
            build
        
    

本例指的是講docker的build目標,綁定在package這個phase上。
也就是說,用戶只需要執行mvn package ,就自動執行了mvn docker:build

2.構建鏡像

使用 maven 命令: mvn package

& cd /opt/other-projects/docker-spring-boot-demo-maven-plugin
& mvn package
3.啟動鏡像
root@souyunku:# docker run --name MySpringBootMavenPlugin -d -p 8080:80 docker-spring-boot-demo-maven-plugin
84ebb2ebb8c002d3935e6e31c6d2aab05c32c075036368228e84f818d20ded4a
4.訪問服務

瀏覽器輸入:http://Docker宿主機IP:8080能夠正常看到界面,文章開頭的最終效果頁面。

推薦閱讀:Docker Hub 倉庫使用,及搭建 Docker Registry

http://www.ymq.io/2017/12/31/Docker-dockerHub/

GitHub :docker-spring-boot-demo-maven-plugin

https://github.com/souyunku/other-projects/tree/master/docker-spring-boot-demo-maven-plugin

Contact

作者:鵬磊

出處:http://www.ymq.io/2018/01/15/Docker-maven-plugin

Email:admin@souyunku.com

版權歸作者所有,轉載請注明出處

Wechat:關注公眾號,搜云庫,專注于開發技術的研究與知識分享


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27207.html

相關文章

  • 使用 Docker 部署 Spring Boot項目

    摘要:項目上傳將項目上傳到華為云服務器,沒啥好說的。環境搭建建議在環境下安裝,環境搭建比較復雜且容易出錯,使用來安裝環境很方便。使用部署項目將項目復制到服務器中,進入項目路徑下進行打包測試。 項目搭建 Spring Boot 項目代碼 @RestController public class SpringBootDockerApplication { public static vo...

    venmos 評論0 收藏0
  • 市長信箱郵件查詢服務: 將SpringBoot應用部署Docker

    摘要:市長信箱郵件查詢服務將應用部署到在上一章我完成了將部署到的工作和都具有能快速啟動的特性因此是一對用來部署微服務的黃金搭檔在計劃中基于的應用也將部署到之上那我們就開始行動吧將部署到上需要執行以下步驟保證打包后的可執行能正常啟動在應用中編寫鏡像 市長信箱郵件查詢服務: 將SpringBoot應用部署到Docker 在上一章, 我完成了將ES部署到Docker的工作. SpringBoot和...

    SKYZACK 評論0 收藏0
  • 谷歌助力,快速實現 Java 應用容器化

    摘要:在年下旬開源了一款新的工具,可以輕松地將應用程序容器化。由于默認訪問谷歌的倉庫,而國內訪問不穩定會經常導致網絡超時,所以筆者使用了國內的阿里云鏡像服務,那么就不需要訪問谷歌的倉庫了。執行完成后,我們可以在阿里云鏡像倉庫獲取鏡像。 原文地址:梁桂釗的博客博客地址:http://blog.720ui.com 歡迎關注公眾號:「服務端思維」。一群同頻者,一起成長,一起精進,打破認知的局限性。...

    Anonymous1 評論0 收藏0
  • 谷歌助力,快速實現 Java 應用容器化

    摘要:在年下旬開源了一款新的工具,可以輕松地將應用程序容器化。由于默認訪問谷歌的倉庫,而國內訪問不穩定會經常導致網絡超時,所以筆者使用了國內的阿里云鏡像服務,那么就不需要訪問谷歌的倉庫了。執行完成后,我們可以在阿里云鏡像倉庫獲取鏡像。 原文地址:梁桂釗的博客博客地址:http://blog.720ui.com 歡迎關注公眾號:「服務端思維」。一群同頻者,一起成長,一起精進,打破認知的局限性。...

    MudOnTire 評論0 收藏0
  • Spring Boot 應用 Docker 化 《Spring Boot 2.0極簡教程》(陳光劍)

    摘要:應用化極簡教程陳光劍基于的企業級應用開發最佳實踐前面的章節中,我們都是在環境中開發運行測試應用程序。關鍵字是分布式應用微服務容器虛擬化。通常,在企業項目實踐中,會實現一套應用部署發布的自動化運維平臺工具。 Spring Boot 應用 Docker 化 《Spring Boot 2.0極簡教程》(陳光劍)—— 基于 Gradle + Kotlin的企業級應用開發最佳實踐 前面的章節中,...

    Donne 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<