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

如何通過idea把項目到私有倉庫

 更新時間:2025年07月18日 17:08:01   投稿:jingxian  
本文介紹Harbor倉庫的創(chuàng)建與使用流程,涵蓋Maven遠程配置、pom.xml參數(shù)設(shè)置、Dockerfile構(gòu)建鏡像及執(zhí)行發(fā)布步驟,旨在實現(xiàn)項目運維自動化,降低維護成本

前言

該篇文章主要是harbor倉庫創(chuàng)建和使用,如果需要看docker創(chuàng)建部署可以看第一篇文章。

通過下面四篇文章可以快速的實現(xiàn)項目運維部署管理,大大減少項目維護的工作量

一、修改maven配置

我們本地如果安裝了docker環(huán)境則不用做處理,直接調(diào)用本地環(huán)境進行打包制作鏡像發(fā)布;但很多時候我們本地不一定會安裝docker的環(huán)境,這時候我們就需要通過配置遠程連接服務(wù)器的方式進行打包制作鏡像。

打開idea設(shè)置,進入Settings > Build, Execution, Deployment > Build Tools > Maven > Runner,配置環(huán)境變量:

  • DOCKER_TLS_VERIFY:啟用安全驗證
  • DOCKER_HOST:服務(wù)器docker的地址
  • DOCKER_CERT_PATH:遠程的服務(wù)器docker的加密證書地址
DOCKER_TLS_VERIFY=1;DOCKER_HOST=https://10.37.129.2:2376;DOCKER_CERT_PATH=/Library/zheng/docker/tls

二、配置pom.xml文件

下面配置由幾部分組成:

  • <properties> 主要用來讀取版本聲明和harbor倉庫域名地址
  • <plugins> 用來聲明插件集合,主要包括了maven打包的插件以及docker構(gòu)建插件

下面的配置是可以直接粘貼使用的,只需要修改自己的harbor倉庫的賬號密碼,以及項目名稱即可

    <properties>
        <!-- docker鏡像的版本號  -->
        <image.tag.verion>1.0.1</image.tag.verion>
        <!-- 遠程harbor倉庫的域名地址 -->
        <docker.repostory>10.37.129.2:5000</docker.repostory>
        <!-- harbor為這個項目創(chuàng)建的目錄   -->
        <harbor.project>ssyx</harbor.project>
    </properties>

    <build>
        <finalName>${project.artifactId}</finalName> <!--jar包名字-->
        <plugins>
            <!-- Maven Compiler Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- 在此處添加 Maven 編譯插件的配置,如果需要的話 -->
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Docker 構(gòu)建插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <!--    maven打包階段就觸發(fā)dockerfile-maven-plugin插件的以下動作   -->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                            <goal>tag</goal>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <!-- docker鏡像版本號,引用上面的 -->
                            <tag>${image.tag.verion}</tag>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <!-- 指定dockerfile所在目錄 -->
                    <contextDirectory>${project.basedir}</contextDirectory>
                    <!-- 指定docker鏡像名,格式必須這樣寫,  注意:這里${docker.repostory}倉庫地址必須有,因為docker需要這個去連接你真實倉庫地址,否則就會連接到官方的docker.io倉庫了, 鏡像名稱格式是:harbor倉庫域名/子倉庫/鏡像名稱,版本號由上面的tag動作標(biāo)注 -->
                    <repository>${docker.repostory}/${harbor.project}/${project.artifactId}</repository>
                    <!-- 連接遠程harbor倉庫的用戶名和密碼 -->
                    <username>admin</username>
                    <password>Harbor12345</password>
                    <!-- 傳遞環(huán)境變量:JAR_FILE給dockerfile -->
                    <buildArgs>
                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

三、創(chuàng)建Dockerfile配置文件

Dockerfile作用主要是構(gòu)建docker的鏡像使用,下面的代碼大致的作用就是先指定基礎(chǔ)鏡像,因為是java應(yīng)用,所以指定jdk作為啟動環(huán)境,然后在讀取本地maven打好的jar包,構(gòu)建好一個鏡像,最后在通過ENTRYPOINT設(shè)置啟動命令

需要注意FROM 引用的jdk鏡像根據(jù)自己情況選擇一個

# 設(shè)置JAVA版本,如果需要生成圖片(驗證碼等),則需要使用 openjdk:8-jdk 這個基礎(chǔ)鏡像、
# openjdk:8-jre #如果只需要運行時環(huán)境則可以使用這個會比jdk的更小
# openjdk:8-jdk
FROM openjdk:8-jdk-alpine
# 接收pom.xml文件傳遞的變量
ARG JAR_FILE
# 注意WORKDIR指向的目錄必須提前存在,否則后面復(fù)制文件的時候會失敗,導(dǎo)致容器無法運行
RUN echo "JAR_FILE is: ${JAR_FILE}" && mkdir /app
WORKDIR /app
COPY target/${JAR_FILE} ./app.jar
RUN echo "ls result" && ls -l /app

ENTRYPOINT ["java","-Xms512m", "-Xmx1g", "-Dfile.encoding=UTF-8", "-jar", "app.jar"]


四、執(zhí)行

最后點擊package即可執(zhí)行打包jar并且把jar包轉(zhuǎn)為鏡像發(fā)布到倉庫

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解Java集合框架如何構(gòu)建高效、靈活的數(shù)據(jù)管理方案

    深入理解Java集合框架如何構(gòu)建高效、靈活的數(shù)據(jù)管理方案

    Java集合框架是Java語言中一個非常重要且強大的部分,它提供了一套豐富、靈活且類型安全的集合數(shù)據(jù)結(jié)構(gòu),幫助開發(fā)者以統(tǒng)一和一致的方式處理數(shù)據(jù)集合,這篇文章主要介紹了深入理解Java集合框架:構(gòu)建高效、靈活的數(shù)據(jù)管理方案,需要的朋友可以參考下
    2025-03-03
  • JAVA?OOM內(nèi)存溢出問題深入解析

    JAVA?OOM內(nèi)存溢出問題深入解析

    這篇文章主要為大家介紹了JAVA?OOM內(nèi)存溢出問題深入解析,在生產(chǎn)環(huán)境搶修中,我們經(jīng)常會碰到應(yīng)用系統(tǒng)java內(nèi)存OOM的情況,這個問題非常常見,今天我們就這個問題來深入學(xué)習(xí)探討一下
    2023-10-10
  • java與js代碼互調(diào)示例代碼

    java與js代碼互調(diào)示例代碼

    用到j(luò)ava和js方法互調(diào),在用HTML5做跨平臺應(yīng)用開發(fā)時經(jīng)常會用到,在這里分享一些自己在實際開發(fā)過程中的用法,希望對初學(xué)者有所幫助
    2013-07-07
  • Spring細數(shù)兩種代理模式之靜態(tài)代理和動態(tài)代理概念及使用

    Spring細數(shù)兩種代理模式之靜態(tài)代理和動態(tài)代理概念及使用

    代理是一種設(shè)計模式,提供了對目標(biāo)對象另外的訪問方式,即通過代理對象訪問目標(biāo)對象??梢圆恍薷哪繕?biāo)對象,對目標(biāo)對象功能進行拓展。在我們學(xué)習(xí)Spring的時候就會發(fā)現(xiàn),AOP(面向切面編程)的底層就是代理
    2023-02-02
  • java代理模式(靜態(tài)代理、動態(tài)代理、cglib代理)

    java代理模式(靜態(tài)代理、動態(tài)代理、cglib代理)

    代理(Proxy)是一種設(shè)計模式,提供了對目標(biāo)對象另外的訪問方式;這篇文章主要介紹了Java 中的三種代理模式,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • 簡單了解JavaCAS的相關(guān)知識原理

    簡單了解JavaCAS的相關(guān)知識原理

    這篇文章主要介紹了簡單了解JavaCAS的相關(guān)知識,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • java線程并發(fā)semaphore類示例

    java線程并發(fā)semaphore類示例

    Java 5.0里新加了4個協(xié)調(diào)線程間進程的同步裝置,它們分別是Semaphore, CountDownLatch, CyclicBarrier和Exchanger,本例主要介紹Semaphore,Semaphore是用來管理一個資源池的工具,可以看成是個通行證
    2014-01-01
  • Java中的緩沖流詳細解析

    Java中的緩沖流詳細解析

    這篇文章主要介紹了Java中的緩沖流詳細解析,緩沖流可以分為字節(jié)緩沖流,字符緩沖流,字節(jié)緩沖流可分為字節(jié)輸?入緩沖流,字節(jié)輸出緩沖流,字符緩沖流可以分為字符輸入緩沖流,字符輸出緩沖流,需要的朋友可以參考下
    2023-11-11
  • Java Iterator迭代器_動力節(jié)點Java學(xué)院整理

    Java Iterator迭代器_動力節(jié)點Java學(xué)院整理

    迭代器是一種模式,它可以使得對于序列類型的數(shù)據(jù)結(jié)構(gòu)的遍歷行為與被遍歷的對象分離,接下來通過本文給大家分享Java Iterator迭代器_動力節(jié)點Java學(xué)院整理,需要的朋友參考下吧
    2017-05-05
  • 淺談Java中是否直接可以使用enum進行傳輸

    淺談Java中是否直接可以使用enum進行傳輸

    這篇文章主要介紹了淺談Java中是否直接可以使用enum進行傳輸,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評論