使用dockerfile-maven-plugin動態構建鏡像並上傳到docker私有倉庫


最近在將應用部署到容器平台,需要在打包時生成docker鏡像,在網上首先搜到了docker-maven-plugin這個插件,但使用起來很麻煩,在maven和dockfile都要做很多額外的配置。后來在官方Github看到作者推薦使用dockerfile-maven-plugin這個新的插件,於是替換成這個,但這個插件在網上的相關資料較少。

pom配置

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

            <!-- Dockerfile maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.10</version>
                <executions>
                    <execution>
                       <id>default</id>
                       <phase>package</phase>
                        <goals>
                            <!--&lt;!&ndash;如果package時不想用docker打包,就注釋掉這個goal&ndash;&gt;-->
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                    </execution> 
                </executions>
                <configuration>
                     <username>username</username>    <!--   docker私有倉庫用戶名,已登錄則不需要 -->
<password>password</password> <!-- docker私有倉庫密碼,已登錄則不需要 -->
<dockerHost>http://10.118.176.103:2375</dockerHost> <!-- 調用遠程docker執行,也可以使用掛載宿主機docker方式 --> <repository>10.118.76.171:4000/jenkins/{project.build.finalName}</repository> <tag>${project.version}</tag> <buildArgs> <JAR_FILE>target/${project.build.finalName}.war</JAR_FILE> </buildArgs> </configuration> </plugin>

dockerfile

FROM 10.118.76.171:4000/library/tomcat:app
RUN rm -rf /usr/local/tomcat/webapps/*
COPY {JAR-FILE} /usr/local/tomcat/webapps/ROOT.war
EXPOSE 8080
CMD ["catalina.sh","run"]

 


免責聲明!

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



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