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

Java(SpringBoot)項(xiàng)目打包(構(gòu)建)成`Docker`鏡像的幾種方式

這篇具有很好參考價(jià)值的文章主要介紹了Java(SpringBoot)項(xiàng)目打包(構(gòu)建)成`Docker`鏡像的幾種方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前置說(shuō)明

  • 最為原始的打包方式
  • spring-boot-maven-plugin插件
  • jib-maven-plugin插件
  • dockerfle-maven-plugin插件
最為原始的方式

也就是使用Docker的打包命令去打包,麻煩,我這里不多說(shuō)。

spring-boot-maven-plugin插件打包

SpringBoot自己內(nèi)置了一個(gè)Docker鏡像打包工具,在spring-boot-starter-parent中,我們無(wú)需多余的設(shè)置。

優(yōu)點(diǎn):不需要寫DockerFile,Spring建議的安全、內(nèi)存、性能等問(wèn)題都不需要管。

jib-maven-plugin插件

來(lái)自Google的一款打包插件。

優(yōu)點(diǎn):不需要本地安裝Docker,也不需要寫DockerFile,Jib 可以直接推送到指定的Docker倉(cāng)庫(kù)。

dockerfle-maven-plugin插件

需要寫DockerFile也需要本地Docker環(huán)境,但是恰恰是最好用的,最穩(wěn)定的,最自由把控的。

優(yōu)點(diǎn):穩(wěn)定,不受網(wǎng)絡(luò)限制,DockerFile自己寫,自由度很高,想怎么改怎么改,個(gè)人推薦這個(gè)。

SpringBoot打包鏡像

我們無(wú)需引入依賴,SpringBoot自帶了。

打包命令:

mvn spring-boot:build-image

但是我不喜歡用命令,IDEA都給你可視化了,何必敲命令呢?而且命令還需要設(shè)置Maven環(huán)境變量。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

就和打JAR包一樣,我們點(diǎn)一下就可以。

但是SpringBoot的打包會(huì)因?yàn)榫W(wǎng)絡(luò)(不通暢),而導(dǎo)致失敗。

打包完成是這樣:

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

我們?nèi)ゲ榭幢镜冂R像有沒(méi)有。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

運(yùn)行測(cè)試一下。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

說(shuō)實(shí)話我運(yùn)行失敗了,因?yàn)槲翼?xiàng)目里面有一下東西它不好搞,比如微信支付的證書文件和KEY文件,一般的SpringBoot項(xiàng)目可以,但是我這個(gè)恰恰不行,我需要自己寫DockerFile去創(chuàng)建卷映射才好。

JIB打包鏡像

配置插件依賴:

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.toemail.smtp.ToEmailApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>3.3.1</version>
                <configuration>
                    <!--from節(jié)點(diǎn)用來(lái)設(shè)置鏡像的基礎(chǔ)鏡像,相當(dāng)于Docerkfile中的FROM關(guān)鍵字-->
                    <from>
                        <!--基礎(chǔ)鏡像名稱(建議使用國(guó)內(nèi)公開鏡像,下載速度快,更穩(wěn)定) -->
                        <image>java:8u172-jre-alpine</image>
                    </from>
                    <to>
                        <!--鏡像名稱和tag,使用了mvn內(nèi)置變量${project.version},表示當(dāng)前工程的version-->
                        <image>demo:${project.version}</image>
                    </to>
                    <!--容器相關(guān)的屬性-->
                    <container>
                        <!--jvm內(nèi)存參數(shù)-->
                        <jvmFlags>
                            <jvmFlag>-Xms4g</jvmFlag>
                            <jvmFlag>-Xmx4g</jvmFlag>
                        </jvmFlags>
                        <!--要暴露的端口-->
                        <ports>
                            <port>8899</port>
                        </ports>
                    </container>
                </configuration>
            </plugin>

我這里用的目前最新版本。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

另外,很多配置我都寫了注釋,如果你想了解更多可以查一下JIB的相關(guān)文檔。

命令
mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
IDEA

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

報(bào)錯(cuò)

如果出現(xiàn)這錯(cuò)誤:

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

就添加以下配置:

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

還是報(bào)錯(cuò)

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

好像是它這個(gè)官方倉(cāng)庫(kù)需要認(rèn)證登錄,我靠,我真不喜歡這破插件,垃圾(暗暗罵道)。

突然解決

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

這個(gè)鏡像,需要指定具體倉(cāng)庫(kù)URL地址的。

但是我現(xiàn)在這個(gè)不行,所以我要換一個(gè)阿里的倉(cāng)庫(kù)。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

改成了這樣:

<to>
  <image>registry.cn-qingdao.aliyuncs.com/jibjava/jibfirst</image>
</to>

阿里云有時(shí)候私有倉(cāng)庫(kù)需要密碼,也可以換成其他私有倉(cāng)庫(kù)。

		<from>
            <image>registry.cn-qingdao.aliyuncs.com/jibjava/jibfirst</image>
            <auth>
              <username>阿里云賬號(hào)</username>
              <password>阿里云密碼</password>
            </auth>
          </from>
XML標(biāo)簽詳解

from:拉取的鏡像的配置,默認(rèn)為gcr.io/distroless/java
to:要生成的鏡像的配置
image:拉取或生成的鏡像名稱
auth: 認(rèn)證信息,分別為用戶名和密碼
container: 容器的屬性
jvmFlgs: JVM 容器的參數(shù),和 Dockerfile 的 ENTRYPOINT作用相同
mainClass: 啟動(dòng)類限定名
args: main 方法的傳入?yún)?shù)
ports: 容器暴露的端口,和 Dockerfile 的EXPOSE作用相同

成功

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

DockerFileMaven打包

DockerFile

FROM c9katayama/java8:latest
# 創(chuàng)建目錄
RUN mkdir -p /dashboard
# 拷貝文件
COPY dashboard.jar /dashboard/dashboard.jar
# 暴露端口
EXPOSE 8099
# 啟動(dòng)命令
CMD ["java", "-jar", "/dashboard/dashboard.jar"]

DockerFile不多說(shuō),請(qǐng)自行學(xué)習(xí)。

依賴展示:

			<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.11</version>
                <dependencies>
                    <dependency>
                        <groupId>javax.activation</groupId>
                        <artifactId>javax.activation-api</artifactId>
                        <version>1.2.0</version>
                        <scope>compile</scope>
                    </dependency>
                </dependencies>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                        <imageTag>latest</imageTag>
                    </imageTags>
                </configuration>
            </plugin>

但是這一段插件的XML別用,因?yàn)檫@是rocketmq可視化控制臺(tái)的官方寫的,你可以自己配置。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

正常的一般插件的XML就這樣:

		<plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.0.0</version>
            <configuration>
                <imageName>${project.artifactId}:${project.version}</imageName>
                <!-- 指定 Dockerfile 路徑-->
                <dockerDirectory>${basedir}/docker</dockerDirectory> 
                <!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置,也可以寫到 Docokerfile 中 -->
                <resources>
                    <resource>
                        <targetPath>/ROOT</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>

其余配置可以自行瀏覽器搜索一下:docker-maven-plugin配置項(xiàng)

構(gòu)建命令
mvn package
嘗試打包

我這里直接IDEA點(diǎn)擊打包,討厭命令。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

注意:需要本地有Docker,并且開啟遠(yuǎn)程連接,WindowsDocker安裝小簡(jiǎn)上一篇文章寫過(guò)的,可以看看,Linux的沒(méi)寫。

好用多了,一次成功。

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

springboot打包鏡像,其他技術(shù),Java,java,spring boot,docker

還是這個(gè)最好用,推薦?。?!

總結(jié)

小簡(jiǎn)選擇的是最后一個(gè),第一個(gè)也還行吧,但是Google那個(gè)不需要本地有Docker環(huán)境,第一個(gè)我還是開著魔法(梯子)打包的,最后一個(gè)挺好的。

看情況選擇的,很久沒(méi)更新啦!越來(lái)越懶了,嘿嘿,下篇再見(jiàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-781761.html

到了這里,關(guān)于Java(SpringBoot)項(xiàng)目打包(構(gòu)建)成`Docker`鏡像的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 用Idea把SpringBoot項(xiàng)目打包鏡像上傳至docker

    用Idea把SpringBoot項(xiàng)目打包鏡像上傳至docker

    命令查看docker裝在哪里 ?vim docker.service 新增?-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock ? ?我在跟pom同一層 imageName后面如果沒(méi)有冒號(hào)版本號(hào),那么會(huì)默認(rèn)latest,如果想要生成多個(gè)版本號(hào),可以用imageTags里面加即可。 后續(xù)只要maven 的clean之后,再package就可以把鏡像上傳至docker服

    2024年02月10日
    瀏覽(19)
  • springboot gradle kotlin 多模塊(或微服務(wù))統(tǒng)一依賴及版本管理和構(gòu)建不同環(huán)境打包task,docker鏡像構(gòu)建task

    springboot gradle kotlin 多模塊(或微服務(wù))統(tǒng)一依賴及版本管理和構(gòu)建不同環(huán)境打包task,docker鏡像構(gòu)建task

    在maven里可以在pom.xml中統(tǒng)一定義項(xiàng)目依賴,依賴版本,插件,多環(huán)境構(gòu)建,子模塊;定義packaging 為pom類型,各子模塊按需引入,并且指定環(huán)境profiles構(gòu)建。 在gradle中也可以實(shí)現(xiàn)依賴統(tǒng)一管理,各模塊按需引入,區(qū)分環(huán)境的構(gòu)建任務(wù)。 先上效果圖 統(tǒng)一定義依賴,依賴版本,插

    2024年02月04日
    瀏覽(66)
  • Docker構(gòu)建Java鏡像并部署Java項(xiàng)目

    Docker構(gòu)建Java鏡像并部署Java項(xiàng)目

    本文介紹了如何使用Docker構(gòu)建一個(gè)Java項(xiàng)目的鏡像,并以后端項(xiàng)目為例進(jìn)行演示。在這個(gè)例子中,我們將使用 eclipse-temurin:8-jre 作為基礎(chǔ)鏡像,并創(chuàng)建一個(gè)可以運(yùn)行Java項(xiàng)目的Docker鏡像。 在開始之前,我們需要做一些準(zhǔn)備工作。首先,確保你已經(jīng)安裝了Docker,并具有構(gòu)建和運(yùn)行

    2024年02月12日
    瀏覽(19)
  • 把java項(xiàng)目打包成鏡像在docker中運(yùn)行

    把java項(xiàng)目打包成鏡像在docker中運(yùn)行

    1 , 首先要準(zhǔn)備一個(gè)maven項(xiàng)目,把它打成jar包 如下圖:找Maven-package-運(yùn)行好了之后下面有路徑。 ?2 , 在docker下創(chuàng)建一個(gè)目錄 mkdir? ?/mydocker 3 , 把打包好的java項(xiàng)目用Xtfp(這是一個(gè)軟件,專門用來(lái)連接虛擬機(jī)上傳文件的)把那個(gè)jar包拉到? /mydocker下面? ? ? 連接好了之后直接

    2023年04月21日
    瀏覽(22)
  • Docker-基于java8構(gòu)建java項(xiàng)目鏡像

    Docker-基于java8構(gòu)建java項(xiàng)目鏡像

    需求:基于openjdk:8-jdk-alpine鏡像,將一個(gè)java項(xiàng)目構(gòu)建為鏡像 實(shí)現(xiàn)步驟: 在linux系統(tǒng)檢查有無(wú)openjdk:8-jdk-alpine鏡像 如果沒(méi)有,需要去鏡像倉(cāng)庫(kù)拉取鏡像,比如DockerHub 復(fù)制命令到linux系統(tǒng)控制臺(tái) 運(yùn)行成功 在linux系統(tǒng)新建一個(gè)空目錄,然后在目錄中新建一個(gè)文件,命令為Dockerfile,

    2024年02月05日
    瀏覽(42)
  • Docker 鏡像庫(kù)國(guó)內(nèi)加速的幾種方法

    Docker 鏡像庫(kù)國(guó)內(nèi)加速的幾種方法

    在國(guó)內(nèi),拉取 Docker 鏡像速度慢/時(shí)不時(shí)斷線/無(wú)賬號(hào)導(dǎo)致限流等,比較痛苦??. 這里提供加速/優(yōu)化的幾種方法。 梳理一下,會(huì)碰到以下情況: 國(guó)內(nèi)下載速度慢/時(shí)不時(shí)斷線:是因?yàn)榫W(wǎng)絡(luò)被限制了。 沒(méi)有公共鏡像庫(kù)賬號(hào)導(dǎo)致限流:是因?yàn)?Docker Hub 等主流鏡像庫(kù),近年來(lái)紛紛開始

    2024年02月09日
    瀏覽(22)
  • Docker學(xué)習(xí)(二十一)構(gòu)建 java 項(xiàng)目基礎(chǔ)鏡像

    Docker學(xué)習(xí)(二十一)構(gòu)建 java 項(xiàng)目基礎(chǔ)鏡像

    JDK各版本官網(wǎng)下載地址: https://www.oracle.com/java/technologies/downloads/archive/#JavaSE 這里我們以 JDK 8u351 為例,點(diǎn)擊 Java SE (8U211 and later) 。 點(diǎn)擊下載 jdk-8u351-linux-x64.tar.gz 。 勾選接受協(xié)議,點(diǎn)擊下載。(這里會(huì)需要登錄一下,沒(méi)有賬號(hào)可以注冊(cè)一個(gè),Oracle賬號(hào)以后也會(huì)用到) 下載后

    2024年02月07日
    瀏覽(15)
  • SpringBoot+Vue前后端分離項(xiàng)目在Linux系統(tǒng)中基于Docker打包發(fā)布,并上傳鏡像到阿里鏡像私倉(cāng)

    SpringBoot+Vue前后端分離項(xiàng)目在Linux系統(tǒng)中基于Docker打包發(fā)布,并上傳鏡像到阿里鏡像私倉(cāng)

    將打好的jar包放到咱們opt目錄下的自定義文件夾內(nèi) 打包成功后 –rm 代表退出之后,容器移動(dòng)刪除 可以看到成功啟動(dòng)了服務(wù) 阿里云免費(fèi)私倉(cāng) 創(chuàng)建好自己的鏡像倉(cāng)庫(kù)后會(huì)顯示操作指南 身份登錄 將鏡像推送到Registry 可以在鏡像倉(cāng)庫(kù)中進(jìn)行查看 拉取鏡像 default.conf 1.root:設(shè)置靜態(tài)

    2024年04月17日
    瀏覽(41)
  • SpringBoot項(xiàng)目使用docker-maven-plugin插件構(gòu)建docker鏡像以及推送到docker hub或docker registry私服

    SpringBoot項(xiàng)目使用docker-maven-plugin插件構(gòu)建docker鏡像以及推送到docker hub或docker registry私服

    我們知道docker可將應(yīng)用程序和基礎(chǔ)設(shè)施層隔離,可更快地打包、測(cè)試以及部署應(yīng)用程序。本文主要介紹SpringBoot項(xiàng)目如何構(gòu)建docker鏡像以及推送到私服或者docker hub服務(wù)器上。 本文介紹的方式是使用docker-maven-plugin的方式構(gòu)建SpringBoot的docker鏡像以及推送到私服或docker hub服務(wù)器上

    2024年02月16日
    瀏覽(21)
  • SpringBoot項(xiàng)目部署(Docker)——通過(guò)Dockerfile將打包好的jar包創(chuàng)建成鏡像 & 在IDEA中配置docker,一鍵啟動(dòng)容器 & 用swagger進(jìn)行測(cè)試

    SpringBoot項(xiàng)目部署(Docker)——通過(guò)Dockerfile將打包好的jar包創(chuàng)建成鏡像 & 在IDEA中配置docker,一鍵啟動(dòng)容器 & 用swagger進(jìn)行測(cè)試

    1.Dockerfile命令初識(shí),CMD…; 2.idea配置docker,圖形化界面; 3.編寫Dockerfile把jar包制作成鏡像,并用idea一鍵生成和啟動(dòng)容器; 4.在Linux中測(cè)試,在宿主機(jī)用swagger進(jìn)行測(cè)試; SpringBoot項(xiàng)目部署(jar包)——項(xiàng)目用maven打包成jar包 windows + Linux平臺(tái)運(yùn)行 Linux安裝java 遇到的問(wèn)題 Docker是一

    2024年02月05日
    瀏覽(39)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包