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

SpringBoot項目使用docker-maven-plugin插件構建docker鏡像以及推送到docker hub或docker registry私服

這篇具有很好參考價值的文章主要介紹了SpringBoot項目使用docker-maven-plugin插件構建docker鏡像以及推送到docker hub或docker registry私服。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

我們知道docker可將應用程序和基礎設施層隔離,可更快地打包、測試以及部署應用程序。本文主要介紹SpringBoot項目如何構建docker鏡像以及推送到私服或者docker hub服務器上。

本文介紹的方式是使用docker-maven-plugin的方式構建SpringBoot的docker鏡像以及推送到私服或docker hub服務器上。

Docker環(huán)境配置

本地環(huán)境配置

docker-maven-plugin 插件默認連接本地 Docker 地址為:localhost:2375,如果我們本地開發(fā)環(huán)境有docker環(huán)境并準備使用本地開發(fā)環(huán)境的docker,只需要先設置下本地開發(fā)環(huán)境的環(huán)境變量。

DOCKER_HOST=tcp://<host>:2375

服務器環(huán)境配置

如果使用CentOS服務器上的docker環(huán)境?(CentOS上安裝docker環(huán)境),則需要在服務器上修改 docker 配置,開啟允許遠程訪問 docker 的功能,開啟方式很簡單,修改 /usr/lib/systemd/system/docker.service 文件,ExecStart中加入如下內容:

-H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock

docker-maven-plugin,Docker,Java開發(fā)筆記,經(jīng)驗分享,docker,spring boot,容器?

?修改好配置后,使用如下命令重啟docker生效:

systemctl daemon-reload    
systemctl restart docker 

IDEA測試docker連接

IDEA 中我們可以測試服務器上的docker環(huán)境是否連接成功,打開?File->Settings->Build,Execution,Deployment->Docker?,然后配置一下 Docker 的遠程連接地址:

docker-maven-plugin,Docker,Java開發(fā)筆記,經(jīng)驗分享,docker,spring boot,容器

配置一下 Docker 的地址,配置完成后,提示 Connection successful 信息,表示 Docker 已經(jīng)連接上了。

SpringBoot項目引入docker-maven-plugin插件

pom.xml配置

項目中引入docker-maven-plugin插件,在pom.xml引入插件并做相應的配置:

<project>
    <!-- other setting-->
    <build>
        <plugins>
            <plugin>
                <!-- https://mvnrepository.com/artifact/com.spotify/docker-maven-plugin -->
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <executions>
                    <!-- 當mvn執(zhí)行install操作的時候,執(zhí)行docker的build和push -->
                    <execution>
                        <id>buildAndPush</id>
                        <phase>install</phase>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- 連接到 帶docker環(huán)境的linux服務器 編譯image -->
                    <dockerHost>http://192.168.**.***:2375</dockerHost>

                    <!-- push到 docker hub 開始 -->
                    <!-- serverId 這個是配置在maven的setting.xml中私服的登錄賬戶信息-->
                    <serverId>docker-hub</serverId>
                    <retryPushCount>1</retryPushCount>
                    <retryPushTimeout>2000</retryPushTimeout>
                    <registryUrl>https://index.docker.io/v1/</registryUrl>
                    <!-- 格式:私有倉庫/鏡像名稱:版本號, 如果要執(zhí)行push操作, 那么鏡像名稱必須為私有倉庫為前綴,不然無效。-->
                    <imageName>flyduck128/${project.artifactId}</imageName>
                    <!-- push到 docker hub 結束 -->

                    <!-- 指定tag版本 -->
                    <imageTags>
                        <imageTag>v1.0</imageTag>
                    </imageTags>
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <!-- optionally overwrite tags every time image is built with docker:build -->
                    <forceTags>true</forceTags>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.zip</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Docker命令可以綁定到maven各階段命令中。該示例配置中我們在execution上將docker的build和push命令綁定在了maven的install階段命令中。當springboot項目執(zhí)行maven的install命令階段,會執(zhí)行docker的build和push命令。

如果需要推送到docker hub或者私服,還需要在本地的maven目錄的setting.xml中配置相應的server:

    <server>
      <id>docker-hub</id>
      <username>flyduck128</username>
      <password>***</password>
      <configuration>
        <email>***@qq.com</email>
      </configuration>
    </server>

如果我們不需要推送到docker hub或者私服,可以不配置docker的push命令以及相應的推送配置:

                    <!-- push到 docker hub 開始 -->
                    <!-- serverId 這個是配置在maven的setting.xml中私服的登錄賬戶信息-->
                    <serverId>docker-hub</serverId>
                    <retryPushCount>1</retryPushCount>
                    <retryPushTimeout>2000</retryPushTimeout>
                    <registryUrl>https://index.docker.io/v1/</registryUrl>
                    <!-- 格式:私有倉庫/鏡像名稱:版本號, 如果要執(zhí)行push操作, 那么鏡像名稱必須為私有倉庫為前綴,不然無效。-->
                    <imageName>flyduck128/${project.artifactId}</imageName>
                    <!-- push到 docker hub 結束 -->

Dockerfile文件配置

Dockerfile文件放入項目的/src/main/docker目錄,在上面的pom.xml中dockerDirectory節(jié)點中保持一致。Dockerfile文件配置如下:

FROM openjdk:8
MAINTAINER flyduck 'flyduck@flyduck.com'
ENV APP_HOME=/usr/local/app
ENV PROJECT_HOME=${APP_HOME}/springboot-docker-1.0-SNAPSHOT
COPY springboot-docker-1.0-SNAPSHOT.zip springboot-docker.zip
RUN mkdir -p ${APP_HOME} && mv springboot-docker.zip ${APP_HOME}
RUN cd ${APP_HOME} && unzip springboot-docker.zip && rm -rf springboot-docker.zip
RUN chmod 777 ${PROJECT_HOME}/bin/dockerrun.sh
EXPOSE 7003
ENTRYPOINT sh ${PROJECT_HOME}/bin/dockerrun.sh

Dockerfile鏡像制作邏輯如下:

  1. 項目的運行依賴 Java 環(huán)境,所以鏡像基于 openjdk:8鏡像來構建。
  2. 容器中創(chuàng)建/user/local/app目錄,將打包的zip文件拷貝到容器中,并移動到/user/local/app目錄,然后解壓zip文件到/user/local/app目錄。
  3. 將程序的端口通過EXPOSE暴露出來。
  4. 最后就是配置一下啟動命令,由于我們springboot項目使用的zip打包發(fā)布的方式,所以啟動的方式和默認springboot項目有些區(qū)別。這里我們單獨將啟動配置放入dockerrun.sh文件,然后通過運行dockerrun.sh文件的方式啟動程序。

dockerrun.sh運行程序配置如下:

# app home
APP_HOME=/usr/local/app/springboot-docker-1.0-SNAPSHOT
# java jar
PROJECT_NAME=${APP_HOME}/springboot-docker-1.0-SNAPSHOT.jar

#spring init load application properties or yml
CONF_FILE=${APP_HOME}/config/application.yml

# java opts.
JAVA_OPTS="-Xms64m -Xmx64m -Xmn64m"

#pid file
PID_CONF=${APP_HOME}/pid/process.pid

java ${JAVA_OPTS} -Djava.ext.dirs=${APP_HOME}/lib:$JAVA_HOME/jre/lib/ext -Dspring.config.location=${CONF_FILE} -jar ${PROJECT_NAME}

構建鏡像以及推送到服務器

在IDEA中直接點擊install,會先打包springboot項目,然后在dockerHost配置的服務器上構建鏡像,最后推送到registerUrl配置的docker私服或者hub docker上。

docker-maven-plugin,Docker,Java開發(fā)筆記,經(jīng)驗分享,docker,spring boot,容器

?項目install完成后,登錄linux服務器,可以看到鏡像已經(jīng)構建成功:

docker-maven-plugin,Docker,Java開發(fā)筆記,經(jīng)驗分享,docker,spring boot,容器

登錄docker hub網(wǎng)站,可以看到鏡像已經(jīng)推送到docker hub上:?

?docker-maven-plugin,Docker,Java開發(fā)筆記,經(jīng)驗分享,docker,spring boot,容器

總結

本文主要介紹如何在IDEA中將SpringBoot項目構建docker鏡像并推送到私服或者docker hub上,本文通過使用docker-maven-plugin插件的方式,連接docker環(huán)境的linux服務器構建docker鏡像,并推送到docker hub上。如果需要推送到私服上,只需要將pom.xml中推送的配置修改私服的配置即可。示例代碼已經(jīng)上傳至Gitee上,感興趣的小伙伴可以直接獲取查看。

參考

CentOS上安裝docker環(huán)境

Maven 插件之 docker-maven-plugin 的使用

Github上docker-maven-plugin源碼地址

docker與Spring boot的集成:docker-maven-plugin使用
Maven 插件之 docker-maven-plugin 的使用
docker-maven-plugin的github地址

使用Maven插件構建SpringBoot項目,生成Docker鏡像push到DockerHub上 - 碼農(nóng)教程

詳細docker-maven-plugin使用方法_服務器_網(wǎng)站技巧 - 編程客棧

私服docker registry server安裝文章來源地址http://www.zghlxwxcb.cn/news/detail-598591.html

到了這里,關于SpringBoot項目使用docker-maven-plugin插件構建docker鏡像以及推送到docker hub或docker registry私服的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • Spring?Boot配置docker-maven-plugin實現(xiàn)構建與推送鏡像

    1、優(yōu)化前: 目前構建docker鏡像都是先執(zhí)行mvn clean package打包之后,將target目錄下的jar包放到服務器上,再通過Dockerfile去build成鏡像,步驟多,而且每次都需要登錄服務器進行操作,十分麻煩。 2、優(yōu)化后: 在Spring Boot項目中引入docker-maven-plugin進行相關配置,之后就可以在項目

    2024年02月15日
    瀏覽(25)
  • Spring Boot配置docker-maven-plugin實現(xiàn)構建與推送鏡像(Dockerfile)

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

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

    2024年02月07日
    瀏覽(24)
  • 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:先看第一張圖片,一開始我也是不知道什么原因導致的,后來看到build時獲取的ProgressMessage信息都是空的,然后一點點排查,然后發(fā)現(xiàn)是鏡像命名的問題的,鏡像命名不允許使用駝峰命令。 ? 解決方法2:可能是docker 上沒有內存了,也會報錯。

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

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

    1.創(chuàng)建SpringBoot項目并在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.啟動項目 6.打包 7.打包后的目錄結構 8.上傳到linux服務器并啟動jar包 9.調用接口測試 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} 這樣的變量作為版本占位符。 像這樣: 或者像這樣: 可以使用這樣的命令: 缺點: Install / D

    2024年02月12日
    瀏覽(26)
  • SpringBoot使用git-commit-id-maven-plugin打包

    git-commit-id-maven-plugin 是一個maven 插件,用來在打包的時候將git-commit 信息打進jar中。 這樣做的好處是可以將發(fā)布的某版本和對應的代碼關聯(lián)起來,方便查閱和線上項目的維護。至于它的作用,用官方說法,這個功能對于大型分布式項目來說是無價的。 你是否經(jīng)常遇到這樣的問

    2024年02月21日
    瀏覽(20)
  • 【項目實戰(zhàn)】使用Maven插件(jacoco-maven-plugin),實現(xiàn)生成代碼覆蓋率報告

    jacoco-maven-plugin是一個Maven插件,用于生成代碼覆蓋率報告。 它可以幫助您了解您的代碼中哪些部分已經(jīng)被測試覆蓋,哪些部分需要更多的測試。 注意,jacoco-maven-plugin 需要 Java 1.5 或更高版本才能運行。 要使用jacoco-maven-plugin,需要在Maven項目中添加以下配置:

    2024年02月15日
    瀏覽(20)
  • Maven項目解決cannot resolve plugin maven-deploy-plugin:2.7

    Maven項目解決cannot resolve plugin maven-deploy-plugin:2.7

    導入maven項目后,編輯的時候提示一些插件加載失??!大概率是你的網(wǎng)絡有問題,插件下載失敗。 如下圖:(網(wǎng)絡突然好了,我想截圖但是沒有復現(xiàn),用網(wǎng)上找到的截圖代替,明白意思就行) 其余的情況也可以用同樣的方式解決。 問題的原因基本上就是網(wǎng)絡問題導致的下載

    2024年02月14日
    瀏覽(15)
  • SpringBoot:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile

    SpringBoot:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile

    ?首先以上就是我的報錯問題,我這個出現(xiàn)的情況就是剛剛創(chuàng)建一個springboot項目,還沒寫任何東西,剛打算運行一下,就產(chǎn)生了這個問題,在網(wǎng)上也看了很多文章,有人說可能是jdk版本和自己本地的版本不對,大家也可以試一下,先把jdk版本的地方都修改正確。但是這個對于

    2024年02月13日
    瀏覽(30)
  • 使用Maven構建SpringBoot項目

    使用Maven構建SpringBoot項目

    網(wǎng)上介紹了許多如何創(chuàng)建Springboot項目,大多數(shù)基于IDE開發(fā)工具并且用Maven管理,如果在當前的開發(fā)環(huán)境并不充裕下,我們可以直接使用Maven命令來創(chuàng)建管理SpringBoot項目,對于習慣使用命令來創(chuàng)建項目來說比較的方便、同時更好的理解SpringBoot的項目結構。 1.1使用Maven創(chuàng)建一個簡

    2024年02月16日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包