精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

【微服務部署】Jenkins一鍵打包部署NodeJS(Vue)步驟詳解

開發 前端
Nginx安裝也有多種方式,源碼安裝、yum安裝、Docker安裝等,安裝并不復雜,我們這里采用Docker安裝的方式,由于習慣于標準化及存檔,方便在不同服務器部署相同的環境,我們這里使用了Docker Compose來定義Nginx容器配置信息。
本文介紹使用Jenkins一鍵將NodeJS(Vue)前端項目打包并上傳到生產環境服務器,這里使用的是直接打包靜態頁面,發送到遠程服務器Nginx配置目錄的方式,首先確保服務器環境配置好,安裝Nginx,運行目錄,日志存放目錄等。一、服務器環境配置

??Nginx安裝也有多種方式,源碼安裝、yum安裝、Docker安裝等,安裝并不復雜,我們這里采用Docker安裝的方式,由于習慣于標準化及存檔,方便在不同服務器部署相同的環境,我們這里使用了Docker Compose來定義Nginx容器配置信息。

1. Nginx的docker-compose-nginx.yml定義文件編寫

??Docker及Docker Compose安裝配置,前面有詳細介紹,這里不再贅述,以下是Nginx容器的Docker Compose定義文件內容:

version: '3'
services:
    ##nginx配置
    nginx:
      image: nginx:latest
      restart: always
      container_name: nginx
      environment:
        - TZ=Asia/Shanghai
      ports:
         #端口映射,前面是宿主機端口,后面是服務端口
        - 80:80
        - 443:443
      volumes:
        - /data/container/nginx/html:/nginx/html
        - /data/container/nginx/www:/var/www
        - /data/container/nginx/logs:/var/log/nginx
        - /data/container/nginx/etc:/etc/nginx
        - /data/container/nginx/etc/nginx.conf:/etc/nginx/nginx.conf
        - "/etc/localtime:/etc/localtime"
        - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"
        #若用到ssl,可以引入
        - /bxl/container/nginx/ssl:/nginx/ssl

部分參數說明:

ports:端口映射,前面是宿主機端口,后面是容器內部服務端口

volumes:目錄映射,前面是宿主機目錄,后面是容器內部目錄

2. 部署及備份目錄準備

  • 新建 /opt/tmp 目錄,用于Jenkins打包后,通過 Publish Over SSH插件將包傳輸到服務器的臨時目錄(如果前面創建過,這里無需再創建)。
  • 新建 /opt/bak 目錄,用于存儲所有部署過的包備份,方便后續版本回滾。此目錄可能會占用很大空間,所以需要選擇一個磁盤空間大的掛載目錄(如果前面創建過,這里無需再創建)。
  • 新建 /opt/script 目錄,用于Jenkins將包傳輸完成之后,執行安裝、備份操作的相關命令腳本(如果前面創建過,這里無需再創建)。
  • 新建 /data/container/nginx/html,用與存放發布后的靜態頁面。
  • 新建 /data/container/nginx/www,映射Nginx容器內的/var/www目錄。
  • 新建 /data/container/nginx/logs,映射Nginx容器內的/var/log/nginx目錄,存放nginx運行日志。
  • 新建 /data/container/nginx/etc,映射Nginx容器內的/etc/nginx目錄
  • 新建 /data/container/nginx/etc/nginx.conf,映射Nginx容器內的/etc/nginx/nginx.conf配置文件
  • 新建 /bxl/container/nginx/ssl,映射Nginx容器內的/nginx/ssl目錄
mkdir -p /opt/tmp /opt/bak /opt/script /data/container/nginx/html /data/container/nginx/www /data/container/nginx/logs  /data/container/nginx/etc  /bxl/container/nginx/ssl

chmod -R 777 /opt/tmp /opt/bak /opt/script /data/container/nginx/html /data/container/nginx/www /data/container/nginx/logs  /data/container/nginx/etc  /bxl/container/nginx/ssl
3.根據系統部署要求編寫Nginx配置文件nginx.conf,以下是簡單的配置方法,正常情況下https請求還需要配置ssl證書,還有ipv6配置等,后面詳細講解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. 部署腳本編寫說明

  • 定義入參,可以通過Jenkins任務將參數傳入腳本中,我們定義了下面2個參數:project_name="portal" : 服務名稱portal_home="/data/container/nginx/html" : 靜態頁面路徑
  • 對參數進行檢查,是否未傳入參數,這里根據自己的實際情況判斷,比如必須傳入哪些參數,就設置參數的個數不能小于幾。
#param validate
if [ $# -lt 1 ]; then  
  echo "you must use like this : ./publish_portal.sh <project_namename> [portal home dir]"  
  exit  
fi
  • 入參賦值,如果有參數傳入,則取服務參數,如果沒有參數傳入則取默認值
if [ "$1" != "" ]; then
   project_name="$1"
fi
if [ "$2" != "" ]; then
   portal_home="$2"
fi
  • 刪除原部署的靜態文件,解壓當前發布包
# 刪除
rm -rf "$portal_home"/index.html "$portal_home"/favicon.ico "$portal_home"/_app.config.js "$portal_home"/logo.png "$portal_home"/resource/ "$portal_home"/assets/
# 解壓
cd /opt/tmp/portal
tar -zxvf portal.tar.gz
  • 備份當前發布的靜態文件包
#bak project_name
BAK_DIR=/opt/bak/portal/$project_name/`date +%Y%m%d`
mkdir -p "$BAK_DIR"
cp /opt/tmp/portal/portal.tar.gz "$BAK_DIR"/"$project_name"_`date +%H%M%S`.tar.gz
#remove tmp
rm -rf portal.tar.gz
  • 將解壓的靜態文件copy到Nginx目錄下
#copy portal code
cp -r * "$portal_home"
  • 刪除臨時文件
#remove tmp
rm -rf index.html favicon.ico _app.config.js logo.png resource assets
  • 打印執行完成的命令
echo "Portal is starting,please try to access $project_name conslone url"
  • 完整的安裝部署腳本
project_name="portal"
portal_home="/data/container/nginx/html"
#param validate
if [ $# -lt 1 ]; then  
  echo "you must use like this : ./publish_portal.sh <project_namename> [portal home dir]"  
  exit  
fi
if [ "$1" != "" ]; then
   project_name="$1"
fi
if [ "$2" != "" ]; then
   portal_home="$2"
fi

echo "portal code copy"
#publish project_name
echo "$project_name publishing"
rm -rf "$portal_home"/index.html "$portal_home"/favicon.ico "$portal_home"/_app.config.js "$portal_home"/logo.png "$portal_home"/resource/ "$portal_home"/assets/
cd /opt/tmp/portal
tar -zxvf portal.tar.gz
#bak project_name
BAK_DIR=/opt/bak/portal/$project_name/`date +%Y%m%d`
mkdir -p "$BAK_DIR"
cp /opt/tmp/portal/portal.tar.gz "$BAK_DIR"/"$project_name"_`date +%H%M%S`.tar.gz
#remove tmp
rm -rf portal.tar.gz
#copy portal code
cp -r * "$portal_home"
#remove tmp
rm -rf index.html favicon.ico _app.config.js logo.png resource assets
#start portal
echo "Portal is starting,please try to access $project_name conslone url"
  • 將部署腳本上傳到服務器的/opt/script目錄下,并賦予可執行權限
chmod 755 publish_portal.sh
二、新建Jenkins配置打包任務,部署打包后的Vue頁面1. Dashboard > 新建任務,輸入任務名稱,選擇“構建一個自由風格的軟件項目”,點擊確定。

2. 項目配置,進入到任務配置頁

  • 丟棄舊的構建 :這里在保持構建的最大個數填寫5,當然可以根據自己情況填寫,否則舊的構建包會一直存在占用磁盤空間。

  • 源碼管理:配置git代碼地址、用戶名密碼和版本分支,如果是需要用戶名密碼的git庫,那么下面需要選擇訪問的用戶名密碼,這里一定要使用用戶名密碼方式,使用token的方式無法選中??梢栽谙路絘dd,也可以在Jenkins全局Credentials 中添加,方便其它任務使用。

  • 構建觸發器:可選可不選,這個根據自己的需求選擇,任務在什么情況下出發構建。

  • 構建環境:這里選擇Provide Node & npm bin/ folder to PATH,選擇我們在系統配置中配置的Node版本。

  • Build Steps:選擇執行shell,在shell窗口中輸入需要執行的打包命令。

  • shell腳本完整內容:
echo $PATH
node -v
pnpm -v
pnpm install
pnpm run build
cd dist
rm -rf portal.tar.gz
tar -zcvf portal.tar.gz *
cd ../
  • 構建后操作:選擇構建后將包發送到服務器

  • Post Steps:將打包后的文件發送到服務器,并執行設置好的腳本,這里選擇Run only if build succeeds,當構建成功時Post。

  • Exec command:將打好的包發布到環境之后,在環境上執行的部署腳本命令。/opt/script/publish_portal.sh 是腳本文件、portal 是項目名稱、/data/container/portal 是前端代碼存放路徑。
/opt/script/publish_portal.sh portal /data/container/portal

3. 運行構建任務

  • 立即構建

  • 查看構建日志:點擊立即構建之后,下方會出現進度條,點擊進度條就可以進入構建日志界面。

4. 構建成功后,下方會給出構建成功提示,此時登錄遠程服務器查看文件是否部署成功即可。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-09-14 20:55:52

NodeJSDocker

2023-09-08 23:30:19

2025-09-08 01:15:00

2023-09-08 08:14:14

2023-06-28 15:56:10

微服務容器無服務器計算

2023-10-12 09:13:14

2023-06-15 10:00:00

Jenkins任務操作

2023-09-10 07:20:35

2019-10-21 11:00:29

微服務架構部署策略

2023-10-12 21:15:08

微服務Docker

2019-02-21 15:42:22

ZStack裸金屬部署

2021-09-29 11:00:49

Vue文件前端

2024-04-08 13:59:03

大模型Replicate

2021-02-21 17:56:55

LinuxNodeJS

2010-08-10 13:22:02

2023-10-13 18:57:22

2019-12-20 10:28:54

工具代碼開發

2012-07-03 16:03:07

2015-06-09 10:36:13

Cloud FoundAzurePaaS
點贊
收藏

51CTO技術棧公眾號

久久这里精品国产99丫e6| 91国产视频在线播放| 午夜一区二区视频| 尤物视频在线看| av不卡一区二区三区| 国产精品美女久久久免费| 任我爽在线视频| 欧美福利在线播放网址导航| 欧美三区免费完整视频在线观看| 成人午夜免费剧场| 可以在线观看的黄色| 精品一二三四在线| 欧美中文字幕第一页| 97在线观看视频免费| 色哟哟精品丝袜一区二区| 欧美卡1卡2卡| 蜜臀久久99精品久久久酒店新书 | 久久精品无码人妻| 女人丝袜激情亚洲| 精品久久五月天| 亚州精品一二三区| 狠狠躁少妇一区二区三区| 自拍偷在线精品自拍偷无码专区| 精品亚洲欧美日韩| 国产精品熟女久久久久久| 亚洲综合99| 色中色综合影院手机版在线观看| 中国女人特级毛片| 欧美顶级毛片在线播放| 日韩欧美国产一二三区| 污视频网站观看| 成人欧美magnet| 香蕉成人啪国产精品视频综合网 | 黄色国产网站在线播放| 久久亚洲捆绑美女| 国产高清不卡av| 国产精品久久777777换脸| 久久国产精品99国产| 久久久久久久一区二区| 国产一二三四区| 日本一区二区高清不卡| 亚洲日韩第一页| 美女又爽又黄视频毛茸茸| 亚洲图色一区二区三区| 日韩一级大片在线| 国产成人精品一区二区在线小狼| 色成人综合网| 欧美日韩不卡视频| 亚洲一二三av| 国产欧美88| 91精品免费观看| 怡红院亚洲色图| 黄色成人小视频| 91精品福利视频| 成年人黄色片视频| 久久毛片亚洲| 日本久久一区二区三区| 人妻丰满熟妇av无码区app| 筱崎爱全乳无删减在线观看| 岛国av在线不卡| 少妇高潮喷水久久久久久久久久| 日本乱码一区二区三区不卡| 狠狠久久亚洲欧美专区| 欧美成人黑人猛交| 亚洲第一会所| 欧美另类变人与禽xxxxx| 久久婷婷中文字幕| 亚洲精品18| 亚洲精品成人av| 亚洲熟妇一区二区三区| 精品国产美女| 精品国产一区久久久| www.99re7| 欧美视频久久| 欧美与黑人午夜性猛交久久久| 亚洲综合久久网| 免费在线看一区| 亚洲bt天天射| 午夜视频www| 日本一区二区免费在线| 在线免费观看成人网| 自拍亚洲图区| 精品久久久久久电影| 亚洲成熟丰满熟妇高潮xxxxx| 成人黄色图片网站| 日韩欧美高清在线| 人妻少妇一区二区| 亚洲不卡av不卡一区二区| 欧美国产日韩一区| 国产主播第一页| 国产精品资源在线看| 久久精品久久精品国产大片| av黄色在线观看| 亚洲国产视频网站| 超碰在线97免费| 日韩成人视屏| 亚洲天堂开心观看| 久久国产精品波多野结衣av | 三上悠亚av一区二区三区| 国产成人久久精品一区二区三区| 亚洲国产日韩欧美在线图片| www久久久久久久| 国产精品magnet| 国产精品999999| 亚洲AV无码成人片在线观看| 国产三级精品在线| 福利视频一二区| 欧美成人一二区| 日韩成人在线网站| 乱h高h女3p含苞待放| 视频一区中文字幕国产| 高清国产在线一区| 麻豆视频在线播放| 欧美性少妇18aaaa视频| 在线观看免费视频国产| 999成人网| 国产精品高潮视频| 免费观看国产精品| 亚洲免费在线看| 亚洲五月天综合| 日韩大胆成人| 欧美日韩不卡合集视频| 亚洲专区第一页| 国产调教视频一区| 99精品人妻少妇一区二区| 秋霞影院一区| 精品国偷自产在线视频99| 亚洲图片欧美日韩| 91丝袜呻吟高潮美腿白嫩在线观看| 国产在线无码精品| 国产亚洲高清一区| 日韩在线播放一区| 中文字幕在线播出| 国产喷白浆一区二区三区| 欧美精品99久久| 精品久久ai电影| 欧美多人爱爱视频网站| av中文字幕免费在线观看| 国产精品网站一区| 少妇一级淫免费播放| 欧美军人男男激情gay| 秋霞午夜一区二区| 全部免费毛片在线播放网站| 狠狠躁天天躁日日躁欧美| 青青草视频网站| 国产精品久久久久9999高清| 精品一区二区三区中文字幕在线 | 91亚洲精品乱码久久久久久蜜桃| 伊人久久在线观看| 日本超碰一区二区| 欧美高清视频在线观看| 精品久久久无码中文字幕| 亚洲欧美国产77777| 999久久久精品视频| 亚洲电影影音先锋| 亚洲一区二区三区在线视频| 手机av免费在线| 日韩欧美三级在线| 国产精品9191| 久久亚洲精品小早川怜子| 99精品视频播放| 欧美日韩精品一区二区视频| 国产日产久久高清欧美一区| 麻豆影院在线| 日韩精品一区二区三区视频播放| 久久久精品99| 99re免费视频精品全部| 97成人在线观看视频| 成人精品影院| 亚洲综合av影视| 啊啊啊久久久| 亚洲性生活视频| 亚洲综合一区中| 亚洲精选一二三| 日韩免费高清一区二区| 久久亚洲电影| 国产系列第一页| 999久久久久久久久6666| 欧美一区二区三区艳史| 91在线不卡| 精品久久人人做人人爰| 无码一区二区三区| 亚洲精品va在线观看| 中文字幕在线播放一区| 日av在线不卡| 福利视频免费在线观看| 国产欧美日韩影院| 91在线免费看网站| 涩涩视频在线播放| 精品国产一区二区三区久久| 国精产品一品二品国精品69xx| 91福利在线导航| 中文字幕在线有码| 国产亚洲成aⅴ人片在线观看| 污污的视频免费观看| 夜夜精品视频| 国产a级片免费看| 欧美激情影院| 亚洲999一在线观看www| 欧美成人精品一区二区男人小说| 久久成人精品电影| 青青久在线视频免费观看| 欧美一区二区精品在线| 无码人妻精品一区二区50| 一区二区三区日韩欧美| 亚洲图片另类小说| 成人动漫精品一区二区| 国产精品自拍视频在线| 免费在线成人| 欧美久久在线观看| 亚洲澳门在线| 亚洲精品日韩精品| 婷婷成人综合| 成人av免费看| 国产高清视频一区二区| 国产成人在线一区二区| aa国产成人| 精品中文字幕在线观看| av大片在线看| 亚洲性生活视频| 深夜福利免费在线观看| 欧美不卡一区二区三区| 91精品国产乱码久久久| 在线视频欧美精品| 日本韩国欧美中文字幕| 亚洲高清不卡在线观看| 18岁成人毛片| 亚洲欧美国产三级| 一本一本久久a久久| 国产精品你懂的| a级在线免费观看| 久久一区二区视频| 亚洲制服丝袜在线播放| 成人美女视频在线看| 一级日本黄色片| 国产一区二区不卡在线| 最新av免费在线观看| 久久精品国产久精国产| 一区二区三区入口| 蜜臀av一区二区在线观看 | 久久免费视频99| 亚洲欧美另类久久久精品2019| 日韩av手机在线免费观看| 国产精品激情偷乱一区二区∴| 手机看片福利视频| 亚洲国产精品99久久久久久久久 | 亚洲一区二区欧美日韩| 99精品久久久久| 夜夜爽夜夜爽精品视频| 激情五月婷婷在线| 亚洲国产综合在线| 粉嫩aⅴ一区二区三区| 精品久久久国产| 一级片免费在线播放| 91国产视频在线观看| 中文字幕a级片| 欧美日韩不卡一区| 国产黄色一区二区| 亚洲第一免费播放区| 天堂а√在线8种子蜜桃视频 | 欧美三区在线观看| 一本色道久久综合精品婷婷| 91精选在线观看| 东京干手机福利视频| 日韩精品福利网站| 国产在线视频网址| 色偷偷888欧美精品久久久 | 2019中文字幕在线| 欧美日韩精品一区二区三区视频| 国产精品欧美激情| 高清一区二区中文字幕| 国产精品jizz视频| 综合综合综合综合综合网| 亚洲激情电影在线| 欧美成熟视频| 18岁网站在线观看| 美女在线视频一区| 苍井空张开腿实干12次| 久久综合99re88久久爱| 少妇高潮在线观看| 精品国产999| 亚洲视频久久久| 精品少妇一区二区三区在线播放| 香蕉国产在线视频| www国产91| 欧美xxxhd| 成人黄色av播放免费| 国产精品jk白丝蜜臀av小说| 日本精品一区| 国产精品地址| 亚洲男人天堂色| 成人爽a毛片一区二区免费| 日本精品在线观看视频| 一区二区三区不卡视频| 无码人妻精品一区二区三区蜜桃91 | 国产精品久久久久9999爆乳| 久久这里有精品15一区二区三区| 日本中文字幕在线不卡| 久久蜜桃av一区二区天堂| 欧美做爰啪啪xxxⅹ性| 日韩欧美在线中文字幕| 精品人妻无码一区二区色欲产成人| 亚洲精选一区二区| 啪啪免费视频一区| 国产精品国语对白| 久久久久久久久久久久久久久久久久久久| 一级做a爰片久久| 亚洲视频播放| 男人的天堂免费| 国产精品毛片a∨一区二区三区| 国产免费观看av| 欧美精品免费视频| 狠狠狠综合7777久夜色撩人| 欧美极品欧美精品欧美视频| 大胆国模一区二区三区| 秋霞毛片久久久久久久久| 亚洲国内精品| 日本xxxx免费| 最新国产の精品合集bt伙计| 精人妻无码一区二区三区| 日韩电影在线观看中文字幕| 在线网址91| 亚洲尤物视频网| 欧美激情理论| 欧美一级特黄a| 久久久久久久久一| 欧美三级午夜理伦| 亚洲精美色品网站| 激情影院在线| 99高清视频有精品视频| 亚洲一区二区三区| 国产永久免费网站| 国产精品久久一级| www.亚洲激情| 一区二区福利视频| 另类激情视频| 免费看成人片| 久久三级福利| 亚洲第一综合网| 欧美在线免费播放| 免费看男男www网站入口在线| 97超级碰在线看视频免费在线看| a看欧美黄色女同性恋| 男人添女人荫蒂免费视频| 成人涩涩免费视频| 日本在线视频免费| 亚洲国产精品人久久电影| ****av在线网毛片| 国产一区喷水| 亚洲一区欧美二区| 91中文字幕永久在线| 日韩欧美亚洲成人| 国产区视频在线播放| 国产剧情久久久久久| 久久久久久免费视频| 亚洲综合123| 亚洲综合色婷婷| 天天干天天草天天射| 欧美在线观看网址综合| 狠狠综合久久av一区二区蜜桃| 青青在线视频免费| 国产精品卡一卡二卡三| 97精品人妻一区二区三区香蕉| 欧美成人午夜免费视在线看片| aaa国产精品| 97视频在线免费播放| 国产人成亚洲第一网站在线播放| 中文资源在线播放| 欧美成年人视频| 任你躁在线精品免费| 国产视频一区二区三区在线播放| 国产视频911| 91久久精品国产91性色69| 九九精品在线视频| 噜噜噜狠狠夜夜躁精品仙踪林| 少妇高清精品毛片在线视频| 亚洲国产精品成人久久综合一区 | 国产高清精品久久久久| 天天操天天射天天爽| 亚洲天堂av网| 日本在线成人| 东京热加勒比无码少妇| 中文字幕五月欧美| 丰满人妻一区二区| 国产91色在线|| 欧美一区免费| 中文字幕第20页| 日韩欧美成人午夜| 日韩成人av电影| 四虎4hu永久免费入口| 91欧美激情一区二区三区成人| 91在线精品入口| 7777免费精品视频| 欧美超碰在线| v8888av| 日韩欧美激情一区| 成人国产一区二区三区精品麻豆| 无码人妻精品一区二区蜜桃网站| 国产日韩欧美电影| 噜噜噜久久,亚洲精品国产品|