最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

idea?Maven?插件?docker-maven-plugin?打包docker鏡像上傳到遠(yuǎn)程倉庫的過程詳解

 更新時(shí)間:2023年05月19日 09:05:49   作者:文藝流浪漢  
這篇文章主要介紹了idea Maven插件docker-maven-plugin打包docker鏡像上傳到遠(yuǎn)程倉庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

原理:

docker-maven-plugin調(diào)用一個(gè) docker的api,進(jìn)行打包鏡像,tag標(biāo)簽,push到遠(yuǎn)程倉庫。

遠(yuǎn)程倉庫的密碼,在本地maven的setting.xml里配置一個(gè)server ,idea根據(jù)id可以獲取到遠(yuǎn)程倉庫的賬號,密碼

一、docker主機(jī)開啟docker 遠(yuǎn)程訪問API

Ubuntu:

vi /lib/systemd/system/docker.service

Centos7

vi /usr/lib/systemd/system/docker.service

找到ExecStart

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

修改完后 重置重啟

systemctl daemon-reload
systemctl restart docker

防火墻開放端口:2375

驗(yàn)證

http://ip:2375/images/json 或curl http:/ip:2375/info

二、在docker主機(jī)配置遠(yuǎn)程倉庫地址,以便非https 也能訪問

vi  /etc/docker/daemon.json
{
"registry-mirrors":  [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"
],
    "insecure-registries": ["registry1的IP地址:端口號","registry2的IP地址:端口號"]
}

修改完后 重置重啟

systemctl daemon-reload
systemctl restart docker

三、maven 配置 遠(yuǎn)程倉庫的賬號密碼

編輯 maven settings.xml文件

<server>  
        <id>local_docker</id>  
         <username>lulu</username>
        <password>123456</password>
 </server>

四、pom 配置

<properties>
    <project.name>bluetoothled</project.name>
<!-- 私有倉庫配置,需要settings.xml文件配合serverId對應(yīng)的倉庫服務(wù) 賬號密碼 -->
    <docker.serverId>local_docker</docker.serverId>
    <docker.registry>192.168.182.100:5000</docker.registry>
     <docker.host>http://192.168.182.100:2375</docker.host>
</properties>
<build>
        <plugins>
            <!-- Srping Boot 打包工具 打包成可執(zhí)行的jar  -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--打包后 復(fù)制jar包到指定文件目錄-->
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <!-- here the phase you need -->
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <!-- 復(fù)制資源后的輸出目錄 -->
                            <outputDirectory>target</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/docker</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- docker插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <configuration>
                    <!-- 私有倉庫配置,需要settings.xml文件配合serverId對應(yīng)的服務(wù)地址 -->
                    <serverId>${docker.serverId}</serverId>
                    <!-- docker私服地址 -->
                    <registryUrl>${docker.registry}</registryUrl>
                    <!-- 指定docker server的地址,該配置不需要本機(jī)安裝docker -->
                    <dockerHost>${docker.host}</dockerHost>
                    <imageName>${project.name}/${project.artifactId}:${project.version}</imageName>
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <!-- docker的構(gòu)建目錄(構(gòu)建上下文),包含Dockerfile  -->
                    <dockerDirectory>target</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
                <executions>
                    <!-- package之前清除上一次構(gòu)建的image -->
                    <execution>
                        <id>remove-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>removeImage</goal>
                        </goals>
                        <configuration>
                            <imageName>
                               ${project.name}/${project.artifactId}
                            </imageName>
                            <imageTags>
                                <imageTag>${project.version}</imageTag>
                                <imageTag>latest</imageTag>
                            </imageTags>
                        </configuration>
                    </execution>
                    <execution>
                        <id>remove-tag-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>removeImage</goal>
                        </goals>
                        <configuration>
                            <imageName>
                                ${docker.registry}/${project.name}/${project.artifactId}
                            </imageName>
                            <imageTags>
                                <imageTag>${project.version}</imageTag>
                                <imageTag>latest</imageTag>
                            </imageTags>
                        </configuration>
                    </execution>
                    <!-- 將docker:build綁定到package這個(gè)phase  -->
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                        <configuration>
                            <!-- imageName中若不指定tag,則會打上latest -->
                            <imageName>${project.name}/${project.artifactId}:${project.version}</imageName>
                            <!-- 可以使用<imageTags>標(biāo)簽打其他額外的tag -->
                        </configuration>
                    </execution>
                    <!-- 將docker:tag綁定到package這個(gè)phase  -->
                    <execution>
                        <id>tag-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>tag</goal>
                        </goals>
                        <configuration>
                            <!-- docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]  -->
                            <!-- images與IMAGE[:TAG]對應(yīng),必須在build階段已經(jīng)構(gòu)建了 -->
                            <image>${project.name}/${project.artifactId}:${project.version}</image>
                            <!-- newName與tag命令的第二個(gè)參數(shù)對應(yīng) -->
                            <newName>
                                ${docker.registry}/${project.name}/${project.artifactId}:${project.version}
                            </newName>
                        </configuration>
                    </execution>
                    <execution>
                        <id>tag-image-latest</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>tag</goal>
                        </goals>
                        <configuration>
                            <!-- docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]  -->
                            <!-- images與IMAGE[:TAG]對應(yīng),必須在build階段已經(jīng)構(gòu)建了 -->
                            <image>${project.name}/${project.artifactId}:${project.version}</image>
                            <!-- newName與tag命令的第二個(gè)參數(shù)對應(yīng) -->
                            <newName>
                                ${docker.registry}/${project.name}/${project.artifactId}:latest
                            </newName>
                        </configuration>
                    </execution>
                    <!-- 將docker:push綁定到deploy這個(gè)phase  -->
                    <execution>
                        <id>push-image</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <imageName>
                                ${docker.registry}/${project.name}/${project.artifactId}:${project.version}
                            </imageName>
                        </configuration>
                    </execution>
                    <execution>
                        <id>push-image-latest</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <imageName>
                                ${docker.registry}/${project.name}/${project.artifactId}:latest
                            </imageName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

docker-maven-plugin詳細(xì)說明請參考http://m.fzitv.net/article/224164.htm

五、在idea中命令控制臺中使用

創(chuàng)建鏡像

mvn clean package docker:build

推送鏡像到Registry

mvn clean package docker:build -DpushImage

推送指定tag的鏡像到Registry

mvn clean package docker:build -DpushImageTag

執(zhí)行 build、tag、push 操作

mvn deploy

如果想跳過 docker 某個(gè)過程時(shí),只需要:
-DskipDockerBuild 跳過 build 鏡像
-DskipDockerTag 跳過 tag 鏡像
-DskipDockerPush 跳過 push 鏡像
-DskipDocker 跳過整個(gè)階段

到此這篇關(guān)于ideaMaven插件docker-maven-plugin打包docker鏡像上傳到遠(yuǎn)程倉庫的文章就介紹到這了,更多相關(guān)ideaMaven插件docker-maven-plugin內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot 攔截器和自定義注解判斷請求是否合法

    SpringBoot 攔截器和自定義注解判斷請求是否合法

    這篇文章主要介紹了SpringBoot 攔截器和自定義注解判斷請求是否合法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-12-12
  • Mybatis-plus selectByMap條件查詢方式

    Mybatis-plus selectByMap條件查詢方式

    這篇文章主要介紹了Mybatis-plus selectByMap條件查詢方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java如何實(shí)現(xiàn)kaptcha網(wǎng)頁驗(yàn)證碼驗(yàn)證

    Java如何實(shí)現(xiàn)kaptcha網(wǎng)頁驗(yàn)證碼驗(yàn)證

    在做關(guān)于SSM項(xiàng)目之商鋪系統(tǒng)時(shí),了解到了kaptcha實(shí)現(xiàn)網(wǎng)頁驗(yàn)證碼驗(yàn)證,感覺就很有趣,所以便開始學(xué)習(xí)記錄了起來,復(fù)制粘貼即可用
    2025-01-01
  • IntelliJ IDEA代碼提示忽略大小寫的具體設(shè)置步驟

    IntelliJ IDEA代碼提示忽略大小寫的具體設(shè)置步驟

    在IDEA開發(fā)過程中,代碼補(bǔ)全功能是提升編碼效率的核心特性之一,默認(rèn)情況下,IDEA的代碼提示會嚴(yán)格匹配大小寫,這對于遵循命名規(guī)范的項(xiàng)目是合理的,然而,在某些場景下,開發(fā)者可能希望代碼提示忽略大小寫,以提升輸入靈活性,所以本文介紹了如何設(shè)置IDEA提示忽略大小寫
    2025-06-06
  • Java中&與&&的區(qū)別及說明

    Java中&與&&的區(qū)別及說明

    這篇文章主要介紹了Java中&與&&的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 淺試仿?mapstruct實(shí)現(xiàn)微服務(wù)編排框架詳解

    淺試仿?mapstruct實(shí)現(xiàn)微服務(wù)編排框架詳解

    這篇文章主要為大家介紹了淺試仿?mapstruct實(shí)現(xiàn)微服務(wù)編排框架詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java基礎(chǔ)學(xué)習(xí)之接口詳解

    Java基礎(chǔ)學(xué)習(xí)之接口詳解

    接口,是Java語言中一種引用類型,是方法的集合,如果說類的內(nèi)部封裝了成員變量、構(gòu)造方法和成員方法,那么接口的內(nèi)部主要就是封裝了方法。本文通過一些示例詳細(xì)為大家展示了接口的使用,需要的可以參考一下
    2022-10-10
  • spring-AOP 及 AOP獲取request各項(xiàng)參數(shù)操作

    spring-AOP 及 AOP獲取request各項(xiàng)參數(shù)操作

    這篇文章主要介紹了spring-AOP 及 AOP獲取request各項(xiàng)參數(shù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java前后端傳值,參數(shù)有集合類型的數(shù)據(jù)時(shí)的兩種操作方式

    java前后端傳值,參數(shù)有集合類型的數(shù)據(jù)時(shí)的兩種操作方式

    這篇文章主要介紹了java前后端傳值,參數(shù)有集合類型的數(shù)據(jù)時(shí)的兩種操作方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 解決Dubbo應(yīng)用啟動注冊ZK獲取IP慢的原因之一

    解決Dubbo應(yīng)用啟動注冊ZK獲取IP慢的原因之一

    這篇文章主要介紹了解決Dubbo應(yīng)用啟動注冊ZK獲取IP慢的原因之一,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論

宁陵县| 金坛市| 广汉市| 淮北市| 徐水县| 杨浦区| 平罗县| 襄城县| 察隅县| 大理市| 云阳县| 万全县| 马公市| 若尔盖县| 巴青县| 孝感市| 西华县| 讷河市| 永春县| 论坛| 灵武市| 南召县| 辉南县| 谢通门县| 全南县| 昌江| 仲巴县| 汤原县| 思茅市| 航空| 吴江市| 民县| 霍林郭勒市| 乌什县| 梁山县| 鹤岗市| 南安市| 老河口市| 高淳县| 奉贤区| 明溪县|