docker-maven-plugin 完全免Dockerfile 文件


 

# DockerSpringBootPlugin

  docker-maven-plugin 完全免Dockerfile 文件

  使用docker-maven-plugin 進行完全免 Dockerfile 文件

  注意 EXPOSE 在spring boot 中不起作用

 

  詳細 

  https://github.com/spotify/docker-maven-plugin  

  

  本機不安裝 docker  連接其他主機或虛擬機  

   需要添加兩個額外配置

      <dockerHost>https://ip:2376</dockerHost>

      <dockerCertPath>證書地址</dockerCertPath>

  這兩個地址可以 在 docker 環境變量中查詢到  
  如果是 docker-machine 創建的虛擬機 可以同 env 連接的的時候 會顯示

  

  
Mvnen :

構建鏡像


  mvn clean package docker:build

構建鏡像並且推送到鏡像表

 

  mvn clean package docker:build -DpushImage

 

復制代碼
 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <!--<dockerDirectory>src/main/docker</dockerDirectory>-->
                    <baseImage>java:8</baseImage>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
復制代碼

 

  建議  

    如果自己或公司的  docker鏡像倉庫   ${docker.image.prefix} 設置為自己的 自己的名稱  后續上傳的時候 就不需要 改名稱 了  

     如果自己不想搭建 公司也沒有 但是想 可以隨時獲取的 可以使用 阿里雲的 docker  鏡像管理   

實例 GitHub  https://github.com/atliwen/DockerSpringBootPlugin

 

使用私有 docker 鏡像倉庫 

復制代碼
<properties>
<docker.maintainer>統一Manven 版本依賴</docker.maintainer>
<docker.imageName>parent</docker.imageName>
</properties>

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId>
            &lt;configuration&gt;
                &lt;serverId&gt;docker-hub&lt;/serverId&gt;
                &lt;registryUrl&gt;https:<span style="color: #008000;">//</span><span style="color: #008000;">10.10.6.50:5000&lt;/registryUrl&gt;</span>
                &lt;dockerHost&gt;https:<span style="color: #008000;">//</span><span style="color: #008000;">10.10.12.205:2376&lt;/dockerHost&gt;</span>
                &lt;dockerCertPath&gt;C:\Users\admin\.docker\machine\machines\manager&lt;/dockerCertPath&gt;
                &lt;imageName&gt;10.10.6.50:5000/${docker.imageName}:${project.version}&lt;/imageName&gt;
                &lt;baseImage&gt;java:8&lt;/baseImage&gt;
                &lt;maintainer&gt;${docker.maintainer}&lt;/maintainer&gt;
                &lt;volumes&gt;/tmp&lt;/volumes&gt;
                &lt;entryPoint&gt;["java", "-jar", "/${project.build.finalName}.jar"]&lt;/entryPoint&gt;
                &lt;resources&gt;
                    &lt;resource&gt;
                        &lt;targetPath&gt;/&lt;/targetPath&gt;
                        &lt;directory&gt;${project.build.directory}&lt;/directory&gt;
                        &lt;include&gt;${project.build.finalName}.jar&lt;/include&gt;
                    &lt;/resource&gt;
                &lt;/resources&gt;
            &lt;/configuration&gt;
        &lt;/plugin&gt;
    &lt;/plugins&gt;
&lt;/build&gt;</pre>
復制代碼

 

注意:

  

   在子Maven 項目中  寫 定義  鏡像名稱 和項目名稱   

   

   docker  鏡像 TAG  為版本號  <version>0.0.1-SNAPSHOT</version>

  

<properties>
<docker.maintainer> EDI 訂單處理服務</docker.maintainer>
<docker.imageName>dj-atliwen-ediwebapi</docker.imageName>
</properties>

 

   登錄私有鏡像倉庫的配置

 <serverId>docker-hub</serverId>
 <registryUrl>https://10.10.6.50:5000</registryUrl>
serverId 是Maven 中的配置   配置  Maven  settings.xml 中 server 節點

復制代碼
<servers>
  <server>
    <id>docker-hub</id>
    <username>foo</username>
    <password>secret-password</password>
    <configuration>
      <email>foo@foo.bar</email>
    </configuration>
  </server>
</servers>

// email 也是必須填寫的
復制代碼

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM