欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

原理:

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

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

一、docker主機(jī)開(kāi)啟docker 遠(yuǎn)程訪問(wè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

防火墻開(kāi)放端口:2375

驗(yàn)證

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

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

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

修改完后 重置重啟

systemctl daemon-reload
systemctl restart docker

三、maven 配置 遠(yuǎn)程倉(cāng)庫(kù)的賬號(hào)密碼

編輯 maven settings.xml文件

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

四、pom 配置

<properties>
    <project.name>bluetoothled</project.name>
<!-- 私有倉(cāng)庫(kù)配置,需要settings.xml文件配合serverId對(duì)應(yīng)的倉(cāng)庫(kù)服務(wù) 賬號(hào)密碼 -->
    <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>
                    <!-- 私有倉(cāng)庫(kù)配置,需要settings.xml文件配合serverId對(duì)應(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,則會(huì)打上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]對(duì)應(yīng),必須在build階段已經(jīng)構(gòu)建了 -->
                            <image>${project.name}/${project.artifactId}:${project.version}</image>
                            <!-- newName與tag命令的第二個(gè)參數(shù)對(duì)應(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]對(duì)應(yīng),必須在build階段已經(jīng)構(gòu)建了 -->
                            <image>${project.name}/${project.artifactId}:${project.version}</image>
                            <!-- newName與tag命令的第二個(gè)參數(shù)對(duì)應(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ì)說(shuō)明請(qǐng)參考http://www.dbjr.com.cn/article/224164.htm

五、在idea中命令控制臺(tái)中使用

創(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

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

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

相關(guān)文章

  • 從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率

    從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率

    這篇文章主要介紹了從java反編譯及字節(jié)碼角度探索分析String拼接字符串效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 使用Java生成JWT令牌的示例代碼

    使用Java生成JWT令牌的示例代碼

    json-web-token簡(jiǎn)稱java web令牌,也稱作JWT,是一種可以實(shí)現(xiàn)跨域身份驗(yàn)證身份的方案,jwt不加密傳輸數(shù)據(jù),但能夠通過(guò)數(shù)據(jù)前面驗(yàn)證數(shù)據(jù)的未被篡改,本文給大家介紹了如何使用Java生成JWT令牌,需要的朋友可以參考下
    2024-04-04
  • springcloud使用Hystrix進(jìn)行微服務(wù)降級(jí)管理

    springcloud使用Hystrix進(jìn)行微服務(wù)降級(jí)管理

    這篇文章主要介紹了springcloud使用Hystrix進(jìn)行微服務(wù)降級(jí)管理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 基于Java中進(jìn)制的轉(zhuǎn)換函數(shù)詳解

    基于Java中進(jìn)制的轉(zhuǎn)換函數(shù)詳解

    下面小編就為大家?guī)?lái)一篇基于Java中進(jìn)制的轉(zhuǎn)換函數(shù)詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Java數(shù)據(jù)結(jié)構(gòu)與算法之樹(shù)(動(dòng)力節(jié)點(diǎn)java學(xué)院整理)

    Java數(shù)據(jù)結(jié)構(gòu)與算法之樹(shù)(動(dòng)力節(jié)點(diǎn)java學(xué)院整理)

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法之樹(shù)的相關(guān)知識(shí),最主要的是二叉樹(shù)中的二叉搜索樹(shù),需要的朋友可以參考下
    2017-04-04
  • SpringBoot配置文件高級(jí)用法實(shí)戰(zhàn)分享

    SpringBoot配置文件高級(jí)用法實(shí)戰(zhàn)分享

    Spring Boot配置文件的優(yōu)先級(jí)是一個(gè)重要的概念,它決定了當(dāng)存在多個(gè)配置文件時(shí),哪個(gè)配置文件中的配置將被優(yōu)先采用,本文給大家介紹了SpringBoot配置文件高級(jí)用法實(shí)戰(zhàn),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Java實(shí)現(xiàn)多線程同步五種方法詳解

    Java實(shí)現(xiàn)多線程同步五種方法詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)多線程同步五種方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Java Semaphore信號(hào)量使用分析講解

    Java Semaphore信號(hào)量使用分析講解

    Semaphore實(shí)際上是一種共享鎖,因?yàn)樗试S多個(gè)線程并發(fā)獲取共享的資源,在Semaphore對(duì)象創(chuàng)建時(shí)必須設(shè)置可用令牌的初始數(shù)量permits,用于控制并發(fā)時(shí)同時(shí)獲取資源權(quán)限的線程數(shù)量,這篇文章主要介紹了Java中的Semaphore如何使用,需要的朋友可以參考下
    2022-12-12
  • Spring如何動(dòng)態(tài)自定義logback日志目錄詳解

    Spring如何動(dòng)態(tài)自定義logback日志目錄詳解

    這篇文章主要給大家介紹了關(guān)于Spring如何動(dòng)態(tài)自定義logback日志目錄的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • 詳解Spring MVC的異步模式(高性能的關(guān)鍵)

    詳解Spring MVC的異步模式(高性能的關(guān)鍵)

    本篇文章主要介紹了詳解Spring MVC的異步模式(高性能的關(guān)鍵),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02

最新評(píng)論