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

【微服務(wù)部署】五、Jenkins+Docker一鍵打包部署NodeJS(Vue)項目的Docker鏡像步驟詳解

這篇具有很好參考價值的文章主要介紹了【微服務(wù)部署】五、Jenkins+Docker一鍵打包部署NodeJS(Vue)項目的Docker鏡像步驟詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??NodeJS(Vue)項目也可以通過打包成Docker鏡像的方式進(jìn)行部署,原理是先將項目打包成靜態(tài)頁面,然后再將靜態(tài)頁面直接copy到Nginx鏡像中運(yùn)行。

一、服務(wù)器環(huán)境配置

??前面說明了服務(wù)器Nginx的安裝和配置,這里稍微有些不同,但是因為此文是用Nginx鏡像和前端鏡像頁面同時部署的方式來打包發(fā)布的,所以這里不再需要建立/data/container/nginx/html目錄,因為要發(fā)布的靜態(tài)頁面已經(jīng)在Nginx鏡像中的/nginx/html目錄了。這里也減少了手動部署安裝Nginx的步驟,而是在Jenkins任務(wù)中調(diào)用shell命令自動執(zhí)行安裝。

1. 新建Dockerfile文件,用于定義Nginx鏡像,及將打包成功的靜態(tài)文件復(fù)制到鏡像中,此文件放在前端項目的根目錄下,Jenkins打包時會從此處查找Dockerfile文件。
FROM nginx:latest
# 維護(hù)者信息
MAINTAINER gitegg
# 將生成的靜態(tài)頁面文件復(fù)制到nginx的/usr/share/nginx/html/目錄
COPY dist/ /usr/share/nginx/html/
# 容器啟動時運(yùn)行的命令
CMD ["nginx", "-g", "daemon off;"]
2. 部署及備份目錄準(zhǔn)備
  • 新建 /opt/tmp 目錄,用于Jenkins打包后,通過?Publish Over SSH插件將包傳輸?shù)椒?wù)器的臨時目錄(如果前面創(chuàng)建過,這里無需再創(chuàng)建)。
  • 新建 /opt/bak 目錄,用于存儲所有部署過的包備份,方便后續(xù)版本回滾。此目錄可能會占用很大空間,所以需要選擇一個磁盤空間大的掛載目錄(如果前面創(chuàng)建過,這里無需再創(chuàng)建)。
  • 新建 /opt/script 目錄,用于Jenkins將包傳輸完成之后,執(zhí)行安裝、備份操作的相關(guān)命令腳本(如果前面創(chuàng)建過,這里無需再創(chuàng)建)。
  • 新建 /data/container/nginx/www,映射Nginx容器內(nèi)的/var/www目錄。
  • 新建 /data/container/nginx/logs,映射Nginx容器內(nèi)的/var/log/nginx目錄,存放nginx運(yùn)行日志。
  • 新建 /data/container/nginx/etc,映射Nginx容器內(nèi)的/etc/nginx目錄
  • 新建 /data/container/nginx/etc/nginx.conf,映射Nginx容器內(nèi)的/etc/nginx/nginx.conf配置文件
mkdir -p /opt/tmp /opt/bak /opt/script /data/container/nginx/www /data/container/nginx/logs  /data/container/nginx/etc
chmod -R 777 /opt/tmp /opt/bak /opt/script /data/container/nginx/www /data/container/nginx/logs  /data/container/nginx/etc
3.根據(jù)系統(tǒng)部署要求編寫Nginx配置文件nginx.conf,以下是簡單的配置方法,正常情況下https請求還需要配置ssl證書,還有ipv6配置等,后面詳細(xì)講解Nginx配置。一定要將修改后的nginx.conf文件放到/data/container/nginx/etc/目錄下,否則nginx啟動時會報錯找不到配置文件。
    server {
        listen 80;
        server_name  域名;

        gzip on;
        gzip_buffers 32 4K;
        gzip_comp_level 6;
        gzip_min_length 100;
        gzip_types application/javascript text/css text/xml text/plain application/x-javascript image/jpeg image/gif image/png;
        gzip_disable "MSIE [1-6]\."; 
        gzip_vary on;

        #charset koi8-r;

        access_log  /var/log/nginx/portal.access.log  main;

        location / {
                root /nginx/html/gitegg_portal;
                try_files $uri $uri/ /index.html;
                index  index.html index.htm;
        }

        location /gitegg-api/ {
            proxy_set_header Host $http_host;               
            proxy_set_header X-Real-Ip $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://172.17.0.1:8080/;
        }
    }
4. 部署腳本編寫說明
  • 定義入?yún)?,可以通過Jenkins任務(wù)將參數(shù)傳入腳本中,我們定義了下面7個參數(shù):
    container_name=portal-server : 容器名稱
    image_name=portal-server : 鏡像名稱
    version=latest : 鏡像版本
    portal_port=80: 宿主主機(jī)端口映射
    server_port=80: 容器內(nèi)服務(wù)端口
    portal_ssl_port=443: 宿主主機(jī)端口映射
    serve_sslr_port=443: 容器內(nèi)服務(wù)端口
  • 對參數(shù)進(jìn)行檢查,是否未傳入?yún)?shù),這里根據(jù)自己的實際情況判斷,比如必須傳入哪些參數(shù),就設(shè)置參數(shù)的個數(shù)不能小于幾。
echo "param validate"
if [ $# -lt 1 ]; then
  echo "you must use like this : ./publish_docker_portal.sh <container_name> <image_name> <version> [portal port] [server port] [portal ssl port] [server ssl port]"  
  exit  
fi
  • 入?yún)①x值,如果有參數(shù)傳入,則取服務(wù)參數(shù),如果沒有參數(shù)傳入則取默認(rèn)值
if [ "$1" != "" ]; then
   container_name="$1"
fi
echo "container_name=" $container_name
if [ "$2" != "" ]; then
   image_name="$2"
fi
if [ "$3" != "" ]; then
   version="$3"
fi
echo "version=" $version
if [ "$4" != "" ]; then
   portal_port="$4"
fi
echo "portal_port=" $portal_port
if [ "$5" != "" ]; then
   server_port="$5"
fi
echo "server_port=" $server_port
if [ "$6" != "" ]; then
   portal_ssl_port="$6"
fi
echo "portal_ssl_port=" $portal_ssl_port
if [ "$7" != "" ]; then
   serve_sslr_port="$7"
fi
echo "serve_sslr_port=" $serve_sslr_port
  • 停止并刪除容器
echo "執(zhí)行docker ps"
docker ps 
if [[ "$(docker inspect $container_name 2> /dev/null | grep $container_name)" != "" ]]; 
then 
  echo $container_name "容器存在,停止并刪除"
  echo "docker stop" $container_name
  docker stop $container_name
  echo "docker rm" $container_name
  docker rm $container_name
else 
  echo $container_name "容器不存在"
fi
  • 停止并刪除鏡像
# 刪除鏡像
echo "執(zhí)行docker images"
docker images
if [[ "$(docker images -q $image_name 2> /dev/null)" != "" ]]; 
then 
  echo $image_name '鏡像存在,刪除鏡像'
  docker rmi $(docker images -q $image_name 2> /dev/null) --force
else 
  echo $image_name '鏡像不存在'
fi
  • 備份本次安裝鏡像包
#bak image
echo "bak image" $image_name
BAK_DIR=/opt/bak/docker/$image_name/`date +%Y%m%d`
mkdir -p "$BAK_DIR"
cp "/opt/tmp/portal-image.tar" "$BAK_DIR"/"$image_name"_`date +%H%M%S`.tar
  • 執(zhí)行安裝鏡像包命令
echo "docker load" $image_name
docker load --input /opt/tmp/portal-image.tar
  • 執(zhí)行運(yùn)行命令
echo "docker run" $image_name
docker run -d -p $portal_port:$server_port -p $portal_ssl_port:$server_ssl_port --name=$container_name -e TZ="Asia/Shanghai" --restart=always -v /data/container/nginx/www:/var/www -v /data/container/nginx/logs:/var/log/nginx -v /data/container/nginx/etc:/etc/nginx -v /data/container/nginx/etc/nginx.conf:/etc/nginx/nginx.conf -v /etc/localtime:/etc/localtime -v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /bxl/container/nginx/ssl:/nginx/ssl $image_name
  • 刪除安裝文件,因為前面已經(jīng)備份過了,所以這里將臨時安裝文件刪除
echo "remove tmp " $image_name
rm -rf /opt/tmp/portal-image.tar
  • 打印執(zhí)行完成的命令
echo "Docker Portal is starting,please try to access $container_name conslone url"
  • 完整的安裝部署腳本
container_name=portal-server
image_name=portal-server
version=latest
portal_port=80
server_port=80
portal_ssl_port=443
serve_sslr_port=443
echo "param validate"
if [ $# -lt 1 ]; then  
  echo "you must use like this : ./publish_docker_portal.sh <container_name> <image_name> <version> [portal port] [server port] [portal ssl port] [server ssl port]"  
  exit  
fi
if [ "$1" != "" ]; then
   container_name="$1"
fi
echo "container_name=" $container_name
if [ "$2" != "" ]; then
   image_name="$2"
fi
if [ "$3" != "" ]; then
   version="$3"
fi
echo "version=" $version
if [ "$4" != "" ]; then
   portal_port="$4"
fi
echo "portal_port=" $portal_port
if [ "$5" != "" ]; then
   server_port="$5"
fi
echo "server_port=" $server_port
if [ "$6" != "" ]; then
   portal_ssl_port="$6"
fi
echo "portal_ssl_port=" $portal_ssl_port
if [ "$7" != "" ]; then
   serve_sslr_port="$7"
fi
echo "serve_sslr_port=" $serve_sslr_port

echo "執(zhí)行docker ps"
docker ps 
if [[ "$(docker inspect $container_name 2> /dev/null | grep $container_name)" != "" ]]; 
then 
  echo $container_name "容器存在,停止并刪除"
  echo "docker stop" $container_name
  docker stop $container_name
  echo "docker rm" $container_name
  docker rm $container_name
else 
  echo $container_name "容器不存在"
fi
# 刪除鏡像
echo "執(zhí)行docker images"
docker images
if [[ "$(docker images -q $image_name 2> /dev/null)" != "" ]]; 
then 
  echo $image_name '鏡像存在,刪除鏡像'
  docker rmi $(docker images -q $image_name 2> /dev/null) --force
else 
  echo $image_name '鏡像不存在'
fi

#bak image
echo "bak image" $image_name
BAK_DIR=/opt/bak/docker/$image_name/`date +%Y%m%d`
mkdir -p "$BAK_DIR"
cp "/opt/tmp/portal-image.tar" "$BAK_DIR"/"$image_name"_`date +%H%M%S`.tar

echo "docker load" $image_name
docker load --input /opt/tmp/portal-image.tar

echo "docker run" $image_name
docker run -d -p $portal_port:$server_port -p $portal_ssl_port:$server_ssl_port --name=$container_name -e TZ="Asia/Shanghai" --restart=always -v /data/container/nginx/www:/var/www -v /data/container/nginx/logs:/var/log/nginx -v /data/container/nginx/etc:/etc/nginx -v /data/container/nginx/etc/nginx.conf:/etc/nginx/nginx.conf -v /etc/localtime:/etc/localtime -v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone -v /bxl/container/nginx/ssl:/nginx/ssl $image_name

echo "remove tmp " $image_name
rm -rf /opt/tmp/portal-image.tar

echo "Docker Portal is starting,please try to access $container_name conslone url"
二、新建Jenkins配置打包任務(wù),打包部署NodeJS(Vue)鏡像
1. 新建任務(wù)前,安裝Docker Pipeline插件,使用Pipeline流水線任務(wù)構(gòu)建部署,安裝Jenkins插件相關(guān)內(nèi)容,請查看前面部署Jenkins相關(guān)文章。

docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js

2. 安裝完插件之后,新建一個流水線任務(wù)。

docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js

3. 和之前的任務(wù)一樣,選擇“丟棄舊的構(gòu)建”,設(shè)置保持構(gòu)建的最大個數(shù)為5。

docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js

4. 下拉到“流水線”配置,選擇Pipeline script

docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js
流水線腳本如下:

node {
    # 從gitlab下載代碼
    stage('Preparation') { // for display purposes
        // Get some code from a GitHub repository
        echo "checkout from GitLab"
        checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: 'git_username', url: 'http://127.0.0.1:9091/test/test.git']])
    }
     # NodeJS打包
    stage('Build NodeJS Vue') {
        echo "build nodejs code"
        nodejs('Node17') {
            sh 'echo $PATH'
            sh 'node -v'
            sh 'pnpm -v'
            sh 'pnpm install'
            sh 'pnpm run build'
        }
    }
     # 此處判斷本機(jī)打包是否有容器,如果有的話需要刪除
    stage('Delete Old Docker Container') {
        echo "delete docker container"
        sh '''if [[ "$(docker inspect $container_name 2> /dev/null | grep $container_name)" != "" ]]; 
        then 
          echo $container_name "容器存在,停止并刪除"
          echo "docker stop" $container_name
          docker stop $container_name
          echo "docker rm" $container_name
          docker rm $container_name
        else 
          echo $container_name "容器不存在"
        fi'''
    }
    # 此處判斷本機(jī)打包是否有鏡像,如果有的話需要刪除
    stage('Delete Old Docker Image') {
        echo "delete docker image"
        sh '''if [[ "$(docker images -q gitegg-portal 2> /dev/null)" != "" ]]; 
            then 
              echo gitegg-portal \'鏡像存在,刪除鏡像\'
              docker rmi $(docker images -q gitegg-portal 2> /dev/null) --force
            else 
              echo gitegg-portal \'鏡像不存在,創(chuàng)建鏡像\'
            fi'''
    }
    # Docker打包鏡像,并保存為tar
    stage('Build Docker Image') {
        echo "start docker build portal code"
        // Run the docker build
        docker.build 'gitegg-portal'
        
        echo "save docker images tar"
        sh 'docker save -o portal-image.tar gitegg-portal'
    }
    # 刪除安裝在本機(jī)的Docker鏡像,非tar包
    stage('Delete New Docker Image') {
        echo "delete docker image"
        sh '''if [[ "$(docker images -q gitegg-portal 2> /dev/null)" != "" ]]; 
            then 
              echo gitegg-portal \'鏡像存在,刪除鏡像\'
              docker rmi $(docker images -q gitegg-portal 2> /dev/null) --force
            else 
              echo gitegg-portal \'鏡像不存在,創(chuàng)建鏡像\'
            fi'''
    }
    # 將Docker鏡像tar包發(fā)送到服務(wù)器并執(zhí)行部署命令
    stage('Send Docker Image') {
        echo "send docker image"
        sshPublisher(publishers: [sshPublisherDesc(configName: 'Test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '/opt/script/publish_docker_portal.sh gitegg-portal gitegg-portal latest 8130 8130 4413 4413', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'portal-image.tar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
    }
    
    stage('Publish Results') {
        echo "End Publish Portal"
    }
}

12. 在任務(wù)左側(cè)點擊立即構(gòu)建
  • 立即構(gòu)建

docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js

  • 流水線任務(wù)可以在右側(cè)顯示階段視圖
    docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js
  • 查看構(gòu)建日志:點擊立即構(gòu)建之后,下方會出現(xiàn)進(jìn)度條,點擊進(jìn)度條就可以進(jìn)入構(gòu)建日志界面。
    docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js
    docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js
13. 構(gòu)建成功后,下方會給出構(gòu)建成功提示。

docker nodejs鏡像,Linux環(huán)境搭建,SpringCloud企業(yè)級開發(fā)框架,Vue.js,微服務(wù),jenkins,docker,vue.js文章來源地址http://www.zghlxwxcb.cn/news/detail-737987.html

到了這里,關(guān)于【微服務(wù)部署】五、Jenkins+Docker一鍵打包部署NodeJS(Vue)項目的Docker鏡像步驟詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

    ??Docker部署項目是指使用Docker容器化技術(shù)將應(yīng)用程序及其依賴項打包成一個獨立的、可移植的運(yùn)行環(huán)境,并在各種操作系統(tǒng)和平臺上進(jìn)行部署和運(yùn)行。 ??使用Docker的主要原因是解決了應(yīng)用程序在不同環(huán)境中部署和運(yùn)行的問題。傳統(tǒng)上,應(yīng)用程序在部署時需要考慮操作系統(tǒng)

    2024年02月09日
    瀏覽(29)
  • NodeJs后端項目使用docker打包部署

    NodeJs后端項目使用docker打包部署

    docker安裝看之前的文章 默認(rèn)已經(jīng)安裝好docker并且配置沒有問題 拉取項目 https://gitee.com/coder-msc/docker-node 本地跑一個看看 pnpm install pnpm start 本地訪問 項目整個上傳服務(wù)器 查看dockerfile 使用docker打包 進(jìn)入項目目錄里面 docker build . 給鏡像打tag: docker tag b86282a8ba4c node-demo:v1.0.1 啟動

    2024年02月15日
    瀏覽(20)
  • Jenkins+Docker 實現(xiàn)一鍵自動化部署項目

    Jenkins+Docker 實現(xiàn)一鍵自動化部署項目

    1.安裝Jenkins 注:因為Jenkins容器里的用戶是Jenkins,而主機(jī)用戶不是Jenkins,就算是root也一樣會報錯:/var/jenkins_home/copy_reference_file.log: Permission denied,這個時候就需要在主機(jī)上面給主機(jī)地址賦予訪問Jenkins容器的權(quán)限,Jenkins內(nèi)部用的是uid 1000的user。 -privileged=true讓容器具有root權(quán)限

    2024年02月16日
    瀏覽(31)
  • Jenkins+Docker 實現(xiàn)一鍵自動化部署項目!步驟齊全,少走坑路

    Jenkins+Docker 實現(xiàn)一鍵自動化部署項目!步驟齊全,少走坑路

    大家好,我是互聯(lián)網(wǎng)架構(gòu)師! 本文章實現(xiàn)最簡單全面的Jenkins+docker+springboot 一鍵自動部署項目,步驟齊全,少走坑路。 環(huán)境 :centos7+git(gitee) 簡述實現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實現(xiàn)項目自動拉取打包并運(yùn)行。 docker 安裝社區(qū)版本CE

    2024年02月09日
    瀏覽(25)
  • Jenkins + Docker 一鍵自動化部署 Spring Boot 項目,步驟齊全,少走坑路!

    Jenkins + Docker 一鍵自動化部署 Spring Boot 項目,步驟齊全,少走坑路!

    本文章實現(xiàn)最簡單全面的Jenkins+docker+springboot 一鍵自動部署項目,步驟齊全,少走坑路。 環(huán)境 :centos7+git(gitee) 簡述實現(xiàn)步驟:在docker安裝jenkins,配置jenkins基本信息,利用Dockerfile和shell腳本實現(xiàn)項目自動拉取打包并運(yùn)行。 推薦一個開源免費(fèi)的 Spring Boot 實戰(zhàn)項目: https://git

    2024年02月08日
    瀏覽(59)
  • 【微服務(wù)部署】一、使用docker-compose部署Jenkins、SonarQube、PostgreSQL

    【微服務(wù)部署】一、使用docker-compose部署Jenkins、SonarQube、PostgreSQL

    一、安裝 1、編寫docker-compose部署Postgres、SonarQube、Jenkins的yml文件jenkins-compose.yml Postgres:作為SonarQube的數(shù)據(jù)庫存儲 SonarQube:代碼質(zhì)量檢查 Jenkins:jenkins/jenkins:lts鏡像,jenkinsci/blueocean鏡像缺少node運(yùn)行時環(huán)境,導(dǎo)致node無法運(yùn)行。 關(guān)鍵配置說明( 宿主機(jī) : Docker容器): /data/doc

    2024年02月09日
    瀏覽(19)
  • Vue項目打包成docker鏡像部署

    一、介紹 我們部署Vue項目,可以build之后,直接放到nginx下面即可,今天給大家介紹創(chuàng)建docker鏡像,使用docker鏡像啟動容器運(yùn)行部署Vue項目的方式,可以嘗試嘗試,原理和使用nginx部署一樣,不過是使用的docker容器而已,內(nèi)部還是使用的是nginx作為基礎(chǔ)鏡像。 二、docker安裝 d

    2023年04月08日
    瀏覽(85)
  • 寶塔+docker+jenkins部署vue項目(保姆級教程)

    寶塔+docker+jenkins部署vue項目(保姆級教程)

    在軟件商城安裝Docker管理器 使用命令行 jenkins_home為我創(chuàng)建的目錄 可以修改任意目錄 我這里設(shè)置的端口為8080 啟動之前需要在云服務(wù)器管理平臺和寶塔開通相應(yīng)端口號 代表成功 首次加載比較慢、需要等待很長時間 到這個頁面算是初始化完成了 輸入密碼路徑為 之前設(shè)置的路

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

    SpringBoot項目部署(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項目部署(jar包)——項目用maven打包成jar包 windows + Linux平臺運(yùn)行 Linux安裝java 遇到的問題 Docker是一

    2024年02月05日
    瀏覽(39)
  • jenkins一鍵部署github項目

    jenkins一鍵部署github項目

    個人目前理解jenkins部署分為兩步: 構(gòu)建項目,如生成jar 自動執(zhí)行sh腳本 如果沒有jenkins,我們可能需要將jar移動到服務(wù)器,然后執(zhí)行java -jar跑程序,jenkins可以替代我們執(zhí)行這些東西,下面從0開始(僅供參考,也是個人記錄) 為啥不用docker安裝jenkins,因為坑多,下面步驟,

    2024年02月12日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包