国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Docker】使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫

這篇具有很好參考價值的文章主要介紹了【Docker】使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


本文描述了在Spring Boot項(xiàng)目中通過docker-maven-plugin插件把項(xiàng)目推送到私有docker倉庫中,隨后拉取倉庫中的項(xiàng)目用docker run運(yùn)行項(xiàng)目。作者自行構(gòu)建,質(zhì)量有保證。

1. 用docker-maven-plugin插件推送項(xiàng)目到私服docker

1.1. 構(gòu)建鏡像 v1.0

1、要想使用docker-maven-plugin,需要在pom.xml中添加該插件;

<build>
     <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.33.0</version>
            <configuration>
                <!-- Docker 推送鏡像倉庫地址(由于是推送到本地的docker鏡像倉庫) -->
                <pushRegistry>http://localhost:5000</pushRegistry>
                <images>
                    <image>
                        <!--由于推送到私有鏡像倉庫,鏡像名需要添加倉庫地址(相當(dāng)于告訴去哪里拉取鏡像)-->
                        <name>localhost:5000/fire-tiny/${project.name}:${project.version}</name>
                        <!--定義鏡像構(gòu)建行為-->
                        <build>
                            <!--定義基礎(chǔ)鏡像-->
                            <from>java:8</from>
                            <args>
                                <!-- jar的名稱,一般配置為gav的av -->
                                <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                            </args>
                            <!--定義哪些文件拷貝到容器中-->
                            <assembly>
                                <!--定義拷貝到容器的目錄-->
                                <targetDir>/</targetDir>
                                <!--只拷貝生成的jar包-->
                                <descriptorRef>artifact</descriptorRef>
                            </assembly>
                            <!--定義容器啟動命令-->
                            <entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
                            <!--定義維護(hù)者-->
                            <maintainer>firefish</maintainer>
                            <!--使用Dockerfile構(gòu)建時打開-->
                            <!--<dockerFileDir>${project.basedir}</dockerFileDir>-->
                        </build>
                        <!--定義容器啟動行為-->
                        <run>
                            <!--設(shè)置容器名,可采用通配符(一般配置為gav的a)-->
                            <containerNamePattern>${project.artifactId}</containerNamePattern>
                            <!--設(shè)置端口映射-->
                            <ports>
                                <port>8080:8080</port>
                            </ports>
                            <!--設(shè)置容器間連接(即容器需要連接mysql,需要外部環(huán)境提供mysql連接)-->
                            <links>
                                <link>mysql:db</link>
                            </links>
                        </run>
                    </image>
                </images>
            </configuration>
        </plugin>
    </plugins>
</build>

注:注意下db:3306

spring:
  datasource:
    url: jdbc:mysql://db:3306/fire?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: root

2、我們構(gòu)建鏡像之前需要先將項(xiàng)目打包,然后再構(gòu)建,否則會出錯,直接使用如下命令即可

mvn package docker:build

3、打包完成后就可以在我們的本地上看到這個鏡像了;

# 本地運(yùn)行
[root@linux-local work]# docker images
REPOSITORY                                             TAG              IMAGE ID       CREATED             SIZE
localhost:5000/fire-tiny/fire-tiny-fabric              0.0.1-SNAPSHOT   9b7cf9c38c5d   About an hour ago   680MB

4、當(dāng)然我們也可以設(shè)置使用package命令時直接打包鏡像,修改pom.xml,在<plugin>節(jié)點(diǎn)下添加<executions>配置即可;

是額外添加的;不建立這么做在需要的時候在構(gòu)建docker鏡像就好了

<plugin>
    <groupId>io.fabric8</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.33.0</version>
    <executions>
        <!--如果想在項(xiàng)目打包時構(gòu)建鏡像添加-->
        <execution>
            <id>build-image</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>
</plugin>

1.2. 構(gòu)建鏡像 v2.0

構(gòu)建鏡像 v2.0 是對 v1.0 的升級,原來的缺點(diǎn)有構(gòu)建docker鏡像的步驟和項(xiàng)目的pom代碼耦合嚴(yán)重,不利于后期修改且構(gòu)建過程導(dǎo)致pom文件臃腫肥大。針對這些缺點(diǎn) v2.0 采用 DockerFile方式把docker鏡像的構(gòu)建步驟和Spring Boot項(xiàng)目的pom文件分離。具體步驟如下:

1、新建DockerFile文件

在項(xiàng)目下新建DockerFile文件,內(nèi)容自定義,參考內(nèi)容如下:

# 該鏡像需要依賴的基礎(chǔ)鏡像
FROM java:8
# 拷貝target下的文件到容器中
ARG JAR_FILE
ADD target/${JAR_FILE} /
# 聲明服務(wù)運(yùn)行在8080端口
EXPOSE 8080
# 指定docker容器啟動時運(yùn)行jar包
ENTRYPOINT ["java", "-jar","/fire-tiny-fabric-0.0.1-SNAPSHOT.jar"]
# 指定維護(hù)者的名字
MAINTAINER mike

2、修改pom文件

構(gòu)建docker鏡像的過程現(xiàn)在只有 <dockerFileDir>${project.basedir}</dockerFileDir> 這一行,非常簡潔。

<build>
     <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.33.0</version>
            <configuration>
                <!-- Docker 推送鏡像倉庫地址(由于是推送到本地的docker鏡像倉庫) -->
                <pushRegistry>http://localhost:5000</pushRegistry>
                <images>
                    <image>
                        <!--由于推送到私有鏡像倉庫,鏡像名需要添加倉庫地址(這個相當(dāng)于告訴別人拉取鏡像的時候去哪里拉取)-->
                        <name>localhost:5000/fire-tiny/${project.name}:${project.version}</name>
                        <!--定義鏡像構(gòu)建行為-->
                        <build>
                            <!--使用Dockerfile構(gòu)建時打開-->
                            <dockerFileDir>${project.basedir}</dockerFileDir>
                        </build>
                    </image>
                </images>
            </configuration>
        </plugin>
    </plugins>
</build>

3、打包、構(gòu)建、查看鏡像

3步一套帶走,比原來簡潔很多看起來也舒服。

# 打包構(gòu)建
mvn clean package docker:build
# 查看本地鏡像
docker images

1.3. 推送到鏡像倉庫

1、指定build和push推送到私有倉庫

【Docker】使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫,Docker,docker,容器

2、登錄私有倉庫地址:http://localhost:8280/,查看到剛推送的鏡像

【Docker】使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫,Docker,docker,容器

2. 拉取私服docker鏡像運(yùn)行

把鏡像推送到私有倉庫后,就需要拉取鏡像到本地并使用鏡像啦。

1、拉取鏡像到本地

因?yàn)槲覀兪潜镜貥?gòu)建的鏡像再推送到私有倉庫的,需要先把原先構(gòu)建的鏡像刪除,再去私有倉庫拉取鏡像

docker rmi "localhost:5000/fire-tiny/fire-tiny-fabric:0.0.1-SNAPSHOT"
docker pull "localhost:5000/fire-tiny/fire-tiny-fabric:0.0.1-SNAPSHOT"

2、運(yùn)行容器

docker run --rm -d --name fire-tiny-fabric -p 8080:8080 "localhost:5000/fire-tiny/fire-tiny-fabric:0.0.1-SNAPSHOT"

3、訪問下容器其中的一個接口

curl -X GET --header 'Accept: application/json' 'http://localhost:8080/brand/list?pageNum=1&pageSize=3'

但是比較遺憾,不出意外查看docker日志會顯示數(shù)據(jù)庫相關(guān)的報(bào)錯。

【Docker】使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫,Docker,docker,容器

這是因?yàn)槲覀冊谇懊娌襟E中構(gòu)建fire-tiny-fabric項(xiàng)目的鏡像時指定了是需要依賴mysql數(shù)據(jù)庫的但是我們在docker run中沒有指定數(shù)據(jù)庫,所以會出現(xiàn)數(shù)據(jù)庫連接方面的錯誤

4、重新運(yùn)行容器

  • 如果存在使用docker構(gòu)建的數(shù)據(jù)庫,那通過–link指定mysql數(shù)據(jù)庫:

    docker run --rm -d --name fire-tiny-fabric -p 8080:8080 \
    --link mysql:db \
    "localhost:5000/fire-tiny/fire-tiny-fabric:0.0.1-SNAPSHOT"
    

    注:mysql:db 中的mysql是容器的名稱(–name),后面的db是構(gòu)建fire-tiny-fabric時指定變量。–link的原理就是在/etc/hosts里面添加了一個alias的名稱。

  • 如果是本地自己構(gòu)建的數(shù)據(jù)庫,那指定ip地址端口

    我們在項(xiàng)目中連接數(shù)據(jù)庫用的是db作為域名,所以只要給容器添加上一個db指向主機(jī)ip地址的域名映射就可以

    spring:
      datasource:
        url: jdbc:mysql://db:3306/fire?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
        username: root
        password: root
    
    # 域名db與主機(jī)ip的映射
    docker run --rm -d --name fire-tiny-fabric -p 8080:8080 \
    --add-host=db:192.168.1.6 \
    "localhost:5000/fire-tiny/fire-tiny-fabric:0.0.1-SNAPSHOT"
    
# 測試接口
curl -X GET --header 'Accept: application/json' 'http://localhost:8080/brand/list?pageNum=1&pageSize=3'

【Docker】使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫,Docker,docker,容器

3. 參考資料

我的文章:《如何查看一個Docker鏡像有哪些版本.md》

我的文章:《Docker設(shè)置國內(nèi)鏡像源.md》

我的文章:《Docker快速入門實(shí)用教程.md》

我的文章:《Docker安裝MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常見服務(wù).md》

我的文章:《Docker安裝Nacos服務(wù).md》

我的文章:《如何修改Docker中的文件.md》

我的文章:《Docker容器間的連接或通信方式.md》

我的文章:《Docker安裝的MySQL如何持久化數(shù)據(jù)庫數(shù)據(jù).md》

我的文章:《制作Docker私有倉庫.md》

我的文章:《使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫.md》

我的文章:《解決Docker安裝Elasticsearch后訪問9200端口失敗.md》


傳送門:保姆式Spring5源碼解析

歡迎與作者一起交流技術(shù)和工作生活

聯(lián)系作者文章來源地址http://www.zghlxwxcb.cn/news/detail-615297.html

到了這里,關(guān)于【Docker】使用docker-maven-plugin插件構(gòu)建發(fā)布推鏡像到私有倉庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot配置docker-maven-plugin實(shí)現(xiàn)構(gòu)建與推送鏡像(Dockerfile)

    Spring Boot配置docker-maven-plugin實(shí)現(xiàn)構(gòu)建與推送鏡像(Dockerfile)

    0、前提:docker、 maven、java均已安裝,docker 鏡像私服均已設(shè)置網(wǎng)絡(luò)也開通 本文基于Docker進(jìn)行構(gòu)建,也可以指定構(gòu)建信息到 POM 中構(gòu)建,大家自行搜索 1、首先是一些網(wǎng)絡(luò)和docker相關(guān)配置的打開 2、針對maven 的 setting.xml 文件的修改 3、項(xiàng)目的pom文件,引入docker maven plugin 及相關(guān)配

    2024年02月07日
    瀏覽(23)
  • docker-maven-plugin直接把鏡像推到私有倉庫

    docker-maven-plugin直接把鏡像推到私有倉庫

    接著上篇 推送到本地docker 我們已經(jīng)把服務(wù)做成鏡像推到docker,也可以通過docker login 私有地址,去push。麻煩 直接上代碼 ?都得對起來,要不然push失敗報(bào) toomanyrequests: too many failed login attempts for username or IP address 加上,這個如果后期有其他倉庫,再建個server即可 其實(shí)也可以做

    2024年02月11日
    瀏覽(21)
  • idea打包docker鏡像時出現(xiàn)“Failed to execute goal com.spotify:docker-maven-plugin:1.2.2:build (build-image) “

    idea打包docker鏡像時出現(xiàn)“Failed to execute goal com.spotify:docker-maven-plugin:1.2.2:build (build-image) “

    ?問題解決參考地址 解決方法1:先看第一張圖片,一開始我也是不知道什么原因?qū)е碌?,后來看到build時獲取的ProgressMessage信息都是空的,然后一點(diǎn)點(diǎn)排查,然后發(fā)現(xiàn)是鏡像命名的問題的,鏡像命名不允許使用駝峰命令。 ? 解決方法2:可能是docker 上沒有內(nèi)存了,也會報(bào)錯。

    2024年02月11日
    瀏覽(99)
  • Idea使用Docker插件實(shí)現(xiàn)maven打包自動構(gòu)建鏡像

    Idea使用Docker插件實(shí)現(xiàn)maven打包自動構(gòu)建鏡像

    Docker 開啟TCP 服務(wù) 改寫以下內(nèi)容 重啟服務(wù) 此時docker已經(jīng)開放了2375端口,使用外部主機(jī)訪問 http://docker:2375/info IDEA 集成Docker 安裝Docker 插件 配置docker服務(wù)地址 點(diǎn)擊view-services,打開docker的操作面板 雙擊docker01可以看到此docker服務(wù)下鏡像和容器 右擊docker鏡像,可以創(chuàng)建新的容器,

    2024年02月10日
    瀏覽(27)
  • 構(gòu)建SpringBoot工程時找不到插件“spring-boot-maven-plugin”

    構(gòu)建SpringBoot工程時找不到插件“spring-boot-maven-plugin”

    目錄 一、找不到插件“spring-boot-maven-plugin” 二、再次啟動時,又發(fā)現(xiàn)報(bào)錯 ????????Unable to find a single main class from the following candidates [com.itheima.Application, com.example.springboot01.Springboot01Application]上面報(bào)錯的意思是,有多個App類,它不知用哪個 ?三、把該插件打包后,在jar包的

    2024年02月07日
    瀏覽(135)
  • 使用Maven插件將項(xiàng)目部署到Docker

    使用Maven插件將項(xiàng)目部署到Docker

    如圖: 按需引入即可 6.1、執(zhí)行install 等待執(zhí)行結(jié)束后,去服務(wù)器查看鏡像 docker images ,可以看到已經(jīng)生成好的鏡像 6.2、使用自定義網(wǎng)絡(luò) 生產(chǎn)環(huán)境因?yàn)椴恢箚为?dú)一個應(yīng)用,所以盡量使用自定義網(wǎng)絡(luò),來保證各個容器間可以通過容器名來訪問,保證數(shù)據(jù)互通 6.2、運(yùn)行容器并測試

    2024年02月03日
    瀏覽(16)
  • Docker+nexus構(gòu)建自己的制品庫之(二)Maven倉庫的使用

    Docker+nexus構(gòu)建自己的制品庫之(二)Maven倉庫的使用

    在沒有開始正文之前,先簡單介紹一下nexus是如何存儲各種類型的數(shù)據(jù)庫的。 右邊的“Blob Stores”菜單功能,可以為維護(hù)所有的Blob Store.下圖就是創(chuàng)建“File”類型的Blob Store的菜單界面。 Blob Stores是Nexus中的一個關(guān)鍵組件,用于存儲管理各種類型的二進(jìn)制文件,包括但不限于構(gòu)

    2024年04月09日
    瀏覽(20)
  • IDEA中使用Docker插件構(gòu)建鏡像并推送至私服Harbor

    IDEA中使用Docker插件構(gòu)建鏡像并推送至私服Harbor

    默認(rèn)的dokcer是不支持遠(yuǎn)程訪問的,需要加點(diǎn)配置,開啟Docker的遠(yuǎn)程訪問 確定docker配置文件位置在:/etc/systemd/system/docker.service 然后編輯修改docker配置文件: 找到包含ExecStart的這行,添加如下內(nèi)容: 其中,2375端口為docker遠(yuǎn)程服務(wù)端口,包含了docker可視化工具portainer,以及遠(yuǎn)程

    2024年02月11日
    瀏覽(21)
  • 【Maven】SpringBoot項(xiàng)目使用maven-assembly-plugin插件多環(huán)境打包

    【Maven】SpringBoot項(xiàng)目使用maven-assembly-plugin插件多環(huán)境打包

    1.創(chuàng)建SpringBoot項(xiàng)目并在pom.xml文件中添加maven-assembly-plugin配置 2.創(chuàng)建 在src/main/assembly目錄下創(chuàng)建assembly.xml文件 3.在src/main/bin創(chuàng)建在linux環(huán)境啟動jar包的腳本 4.配置application.yml文件 5.啟動項(xiàng)目 6.打包 7.打包后的目錄結(jié)構(gòu) 8.上傳到linux服務(wù)器并啟動jar包 9.調(diào)用接口測試 10.源碼地址

    2024年02月12日
    瀏覽(23)
  • 【SpringBoot】Maven 版本管理與 flatten-maven-plugin 插件的使用及分析

    【SpringBoot】Maven 版本管理與 flatten-maven-plugin 插件的使用及分析

    IntelliJ IDEA 2021.3 JDK 1.8.0_301 Apache Maven 3.8.1 org.codehaus.mojo:versions-maven-plugin 1.2.7 https://www.mojohaus.org/flatten-maven-plugin/ 自 Maven 3.5.0-beta-1 開始,可以使用 ${revision}, ${sha1} and/or ${changelist} 這樣的變量作為版本占位符。 像這樣: 或者像這樣: 可以使用這樣的命令: 缺點(diǎn): Install / D

    2024年02月12日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包