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

項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建

這篇具有很好參考價(jià)值的文章主要介紹了項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

??Docker部署項(xiàng)目是指使用Docker容器化技術(shù)將應(yīng)用程序及其依賴項(xiàng)打包成一個(gè)獨(dú)立的、可移植的運(yùn)行環(huán)境,并在各種操作系統(tǒng)和平臺上進(jìn)行部署和運(yùn)行。

??使用Docker的主要原因是解決了應(yīng)用程序在不同環(huán)境中部署和運(yùn)行的問題。傳統(tǒng)上,應(yīng)用程序在部署時(shí)需要考慮操作系統(tǒng)、軟件版本、依賴項(xiàng)等因素,不同環(huán)境之間存在差異,導(dǎo)致部署和運(yùn)維變得復(fù)雜。

??Docker可以將應(yīng)用程序及其所有依賴項(xiàng)打包成一個(gè)獨(dú)立的容器,該容器包含了應(yīng)用程序運(yùn)行所需的所有組件,如操作系統(tǒng)、庫、運(yùn)行時(shí)環(huán)境等。這樣,無論在哪個(gè)環(huán)境中部署,只需要安裝Docker并運(yùn)行容器,就可以保證應(yīng)用程序在各個(gè)環(huán)境中的一致性和可移植性。


準(zhǔn)備

  • maven項(xiàng)目(java)
  • nexus(鏡像倉庫)
  • gitLab(代碼倉庫)
  • jenkins構(gòu)建工具
  • 安裝了docker的服務(wù)器

實(shí)操

1、打開docker的遠(yuǎn)程訪問

??Docker 安裝成功之后,首先需要修改 Docker 配置來開啟允許遠(yuǎn)程訪問 Docker 的功能。

文件位置:/lib/systemd/system/docker.service

??修改內(nèi)容: 加入如下內(nèi)容:

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

??服務(wù)器開放2375端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent
systemctl restart firewalld

??重啟docker

systemctl daemon-reload
systemctl restart docker


2、編寫dockerfile文件

??dockerfile文件用來生成docker鏡像,鏡像就像安裝包,可以運(yùn)行為一個(gè)個(gè)的容器。

??將dockerfile文件放到resource文件夾下。

FROM openjdk:11
# 將jar包添加到容器中,并命名為 demo.jar
COPY merit-excitation-*.jar /home/admin/merit-backend/merit-excitation-*.jar
#COPY agent /home/admin/agent
# 設(shè)置環(huán)境變量
ENV SPRING_NACOS_SERVERADDRESS='nacos.tfjy.tech:8848'
ENV SPRING_NACOS_NAMESPACE='merit-test'
# 設(shè)置時(shí)區(qū)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 啟動jar包命令
#CMD java -javaagent:/home/admin/agent/skywalking-agent.jar -DSW_AGENT_NAME=merit-excitation -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=skywalking.tfjy.tech:11800  -Xms228m -Xmx228m -Dspring.cloud.nacos.config.server-addr=${SPRING_NACOS_SERVERADDRESS} -Dspring.cloud.nacos.config.namespace=${SPRING_NACOS_NAMESPACE} -Dspring.cloud.nacos.config.username=merit -Dspring.cloud.nacos.config.password=merit -Dspring.cloud.nacos.discovery.server-addr=${SPRING_NACOS_SERVERADDRESS} -Dspring.cloud.nacos.discovery.namespace=${SPRING_NACOS_NAMESPACE} -Dspring.cloud.nacos.discovery.username=merit -Dspring.cloud.nacos.discovery.password=merit -jar /home/admin/merit-backend/merit-excitation-*.jar
CMD java -Xms228m -Xmx228m -Dspring.cloud.nacos.config.server-addr=${SPRING_NACOS_SERVERADDRESS} -Dspring.cloud.nacos.config.namespace=${SPRING_NACOS_NAMESPACE} -Dspring.cloud.nacos.config.username=merit -Dspring.cloud.nacos.config.password=merit -Dspring.cloud.nacos.discovery.server-addr=${SPRING_NACOS_SERVERADDRESS} -Dspring.cloud.nacos.discovery.namespace=${SPRING_NACOS_NAMESPACE} -Dspring.cloud.nacos.discovery.username=merit -Dspring.cloud.nacos.discovery.password=merit -jar /home/admin/merit-backend/merit-excitation-*.jar
# SpringBoot項(xiàng)目配置的端口號為9001,需要將9001暴露出去
EXPOSE 9071



3、指定nexus環(huán)境

??父pom:

    <profiles>
        <profile>
            <!--不同環(huán)境Profile的唯一id-->
            <id>dev</id>
            <properties>
                <!--profiles.active是自定義的字段(名字隨便起),自定義字段可以有多個(gè)-->
                <profiles.active>dev</profiles.active>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
                <docker-url>http://192.168.0.100:2375</docker-url>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
                <docker-url>http://192.168.0.200:2375</docker-url>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

??子pom

    <parent>
        <artifactId>merit-backend</artifactId>
        <groupId>com.xxx</groupId>
        <version>1.0.15</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>merit-template</artifactId>
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <registry-url>192.168.0.xxx:8083</registry-url>
        <skipTests>true</skipTests><!--編譯打包跳過測試類-->
    </properties>

    <build>
        <finalName>${project.artifactId}-${project.parent.version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <configuration>
                    <serverId>docker-local</serverId>
                    <dockerHost>${docker-url}</dockerHost>
                    <imageName>${registry-url}/${project.artifactId}-${profiles.active}:${project.parent.version}</imageName>
                    <!--nexus3 hosted 倉庫地址-->
                    <registryUrl>${registry-url}</registryUrl>
                    <!-- 在生成圖像后將其推入的標(biāo)志。默認(rèn)為false -->
                    <pushImage>true</pushImage>
                    <imageTags>
                        <!-- 指定鏡像標(biāo)簽,可以排至多個(gè)標(biāo)簽 -->
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                    <!--是否強(qiáng)制覆蓋已有鏡像-->
                    <forceTags>true</forceTags>
                    <!--方式一:1、指定Dockerfile文件所在目錄,通過文件執(zhí)行打包上傳nexus私服-->
                    <dockerDirectory>src/main/resources</dockerDirectory>
                    <!-- 指定docker鏡像打包參數(shù),即dockerfile中使用的參數(shù),通過${參數(shù)名}取值 -->
                    <buildArgs>
                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--指定需要復(fù)制的根目錄,${project.build.directory}表示target目錄-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要復(fù)制的文件,${project.build.finalName}.jar表示打包后的jar包文件-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>


4、配置jenkins

??新建一個(gè)maven項(xiàng)目的任務(wù)

項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器

??舊版本管理
項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器
??設(shè)置參數(shù)
項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器
??設(shè)置git,指定代碼分支

項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器

項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器
??打包鏡像的命令
項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器
項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器

#!/bin/bash

echo admin | sudo -S docker stop merit-excitation
# 刪除舊的容器
echo admin | sudo -S docker rm -f merit-excitation
# 刪除舊版鏡像
echo admin | sudo -S docker rmi 192.168.0.xxx:8083/merit-excitation-prod:${old_version}
#刪除所有懸空鏡像
echo admin | sudo -S docker rmi $(echo admin | sudo -S docker images -f "dangling=true" -q)
# 啟動鏡像
echo admin | sudo -S docker run --net=host --restart=always -d --name merit-excitation -p 9071:9071 -e SPRING_NACOS_NAMESPACE=merit-prod -v /home/admin/logs:/logs 192.168.0.xxx:8083/merit-excitation-prod:${new_version}

exit


5、使用jenkins構(gòu)建

??構(gòu)建時(shí)要?jiǎng)h除舊版鏡像,根據(jù)版本號刪除鏡像,防止占用服務(wù)器空間。
項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器
項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建,中間件,docker,jenkins,容器



總結(jié)

??配置好以后把鏡像推到服務(wù)器上運(yùn)行就很簡單了。文章來源地址http://www.zghlxwxcb.cn/news/detail-706621.html

到了這里,關(guān)于項(xiàng)目打包docker鏡像 | 上傳nexus | jenkins一鍵構(gòu)建的文章就介紹完了。如果您還想了解更多內(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)文章

  • Python項(xiàng)目打包, docker build構(gòu)建docker鏡像, Docker Compose (Docker編配)

    將本地Python項(xiàng)目打包構(gòu)建docker鏡像,并在docker中運(yùn)行【流程1-8】 8、Docker Compose (Docker編配) 附錄: 其他常用docker命令 ? 2.2 下載python項(xiàng)目所需依賴包到指定文件夾py_pkgs: ?? 在es-python文件夾下,新建一個(gè)Dockerfile文件: 5. 假設(shè)宿主機(jī)上已經(jīng)裝好docker, 此時(shí)切換到es-python路徑下 ?

    2024年02月15日
    瀏覽(22)
  • docker安裝Nexus3搭建docker私有倉庫,并上傳鏡像

    docker安裝Nexus3搭建docker私有倉庫,并上傳鏡像

    參考:https://blog.csdn.net/gengkui9897/article/details/127353727 Nexus是Sonatype提供的倉庫管理平臺,Nuexus Repository OSS3能夠支持Maven、npm、Docker、YUM、Helm等格式數(shù)據(jù)的存儲和發(fā)布;并且能夠與Jekins、SonaQube和Eclipse等工具進(jìn)行集成。 通過nexus自建能夠有效減少訪問獲取鏡像的時(shí)間和對帶寬使

    2024年02月16日
    瀏覽(25)
  • Java(SpringBoot)項(xiàng)目打包(構(gòu)建)成`Docker`鏡像的幾種方式

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

    前置說明 最為原始的打包方式 spring-boot-maven-plugin 插件 jib-maven-plugin 插件 dockerfle-maven-plugin 插件 最為原始的方式 也就是使用 Docker 的打包命令去打包,麻煩,我這里不多說。 spring-boot-maven-plugin插件打包 SpringBoot自己內(nèi)置了一個(gè) Docker 鏡像打包工具,在 spring-boot-starter-parent 中,

    2024年02月02日
    瀏覽(24)
  • 將本地Python項(xiàng)目打包成docker鏡像,上傳到服務(wù)器,在docker中運(yùn)行

    將本地Python項(xiàng)目打包成docker鏡像,上傳到服務(wù)器,在docker中運(yùn)行

    windows11 Docker下載地址:https://docs.docker.com/desktop/install/windows-install/ 虛擬環(huán)境可以搭建獨(dú)立的Python運(yùn)行環(huán)境,使得單個(gè)項(xiàng)目的運(yùn)行環(huán)境與其他項(xiàng)目互不影響。 安裝完成之后,便可以直接創(chuàng)建虛擬環(huán)境了,使用命令 virtualenv env1 進(jìn)行創(chuàng)建 其中 activate.bat 文件,表示激活虛擬環(huán)境。

    2024年02月11日
    瀏覽(23)
  • windows部署python項(xiàng)目(以Flask為例)到docker,通過腳本一鍵生成dockerfile并構(gòu)建鏡像啟動容器

    windows部署python項(xiàng)目(以Flask為例)到docker,通過腳本一鍵生成dockerfile并構(gòu)建鏡像啟動容器

    這里使用 pipreqs 進(jìn)行依賴庫的識別。使用 pipreqs 可以自動檢索到當(dāng)前項(xiàng)目下的所有組件及其版本,并生成 requirements.txt 文件。相比直接用pip freeze 命令,避免將整個(gè)python環(huán)境的依賴包寫入。 在項(xiàng)目的當(dāng)前目錄中執(zhí)行 pipreqs ./ --encoding=utf8 --force 這里使用的是一個(gè)基于flask項(xiàng)目,

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

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

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

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

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

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

    2024年02月05日
    瀏覽(39)
  • QT+jenkins window環(huán)境實(shí)現(xiàn)一鍵自動化構(gòu)建打包簽名發(fā)布

    QT+jenkins window環(huán)境實(shí)現(xiàn)一鍵自動化構(gòu)建打包簽名發(fā)布

    ? ? ? ? 1.官網(wǎng)下載地址:?Jenkins download and deployment,下載最新版本的安裝包并安裝。安裝過程中,會要求你輸入端口號并記住。 ? ? ? ? 2.java下載地址:Java Downloads | Oracle,下載最新版本的安裝包并安裝。 ? ? ? ? 3.瀏覽器輸入網(wǎng)址:127.0.0.1: port, port為端口號,默認(rèn)8080,安

    2024年02月01日
    瀏覽(26)
  • Maven學(xué)習(xí)1_將項(xiàng)目打包jar然后上傳到GitHub、Nexus Sonatype倉庫、搭建Sonatype私服

    Maven學(xué)習(xí)1_將項(xiàng)目打包jar然后上傳到GitHub、Nexus Sonatype倉庫、搭建Sonatype私服

    概述 主要學(xué)習(xí)記錄Maven倉庫相關(guān)知識,如何借助上傳項(xiàng)目jar包到GitHub、Nexus Sonatype,,以及搭建自己的Nexus Sonatype私服,然后在Maven項(xiàng)目的pom文件引入使用,參考Maven官網(wǎng)文檔:https://central.sonatype.org/publish/publish-maven/ 需要了解:Maven中央倉庫并不支持直接發(fā)布jar 包,需要將jar 包

    2024年02月15日
    瀏覽(26)
  • 詳解如何使用Jenkins一鍵打包部署SpringBoot項(xiàng)目

    詳解如何使用Jenkins一鍵打包部署SpringBoot項(xiàng)目

    目錄 1、Jenkins簡介 2、Jenkins的安裝及配置 2.1、Docker環(huán)境下的安裝?編輯 2.2、Jenkins的配置 3、打包部署SpringBoot應(yīng)用 3.1、在Jenkins中創(chuàng)建執(zhí)行任務(wù) 3.2、測試結(jié)果 任何簡單操作的背后,都有一套相當(dāng)復(fù)雜的機(jī)制。本文將以SpringBoot應(yīng)用的在Docker環(huán)境下的打包部署為例,詳細(xì)講解如

    2024年02月05日
    瀏覽(38)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包