精品欧美一区二区三区在线观看 _久久久久国色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视频精品全部免费在线| 日本精品视频在线观看| 精品女人久久久| 欧美挤奶吃奶水xxxxx| 欧美体内she精视频| 99热这里只有精品免费| 国产中文在线视频| 国产盗摄视频一区二区三区| 日本aⅴ大伊香蕉精品视频| www.xx日本| 偷拍一区二区| 日韩女优视频免费观看| 538在线视频观看| 国产va在线视频| 欧美日韩电影免费看| 久久av免费| 日韩一区二区在线免费观看| 亚洲熟妇av一区二区三区| 在线观看a级片| 国产日产欧美一区| 国产伦精品一区二区三区高清版| 亚洲国产精品无码久久久| 欧美区日韩区| 久久精品国产v日韩v亚洲| 久久久久国产精品区片区无码| 天天综合91| 欧美最新大片在线看| 亚洲人成无码网站久久99热国产| 日本a级在线| 久久久久成人黄色影片| 精品视频在线观看| 国模私拍视频在线| 国产精品一区一区三区| 国产一区二区色| 国产精品香蕉在线观看| 国精产品一区一区三区免费视频| 日韩区欧美区| 91精品国产综合久久香蕉麻豆| 网站一区二区三区| 欧美xx视频| 欧美午夜xxx| 女人喷潮完整视频| 欧美三级网站| 精品人伦一区二区三区蜜桃免费| 日韩精品综合在线| 国产乱码在线| 亚洲一本大道在线| 国产精品国产三级国产专区51| 91蜜桃在线视频| 一区二区三区中文字幕精品精品 | 岛国大片在线观看| 黄色视屏在线免费观看| 中日韩免费视频中文字幕| 欧美一区二区三区在线播放 | 妺妺窝人体色www看人体| a级影片在线| 亚洲精品一二三| 国产免费内射又粗又爽密桃视频| 黄色在线免费看| 亚洲人成伊人成综合网小说| 四虎永久免费网站| 成年视频在线观看| 洋洋成人永久网站入口| 69sex久久精品国产麻豆| 亚洲妇熟xxxx妇色黄| 一区二区三区在线观看动漫| 丁香色欲久久久久久综合网| 美女精品视频| 欧美性猛交xxxx久久久| 国产精品99蜜臀久久不卡二区 | 日韩精品五月天| 日本精品久久中文字幕佐佐木| aaa在线视频| 卡一卡二国产精品 | 欧美高清自拍一区| 国产午夜精品无码一区二区| 国产亚洲一级| 国产精品爽黄69天堂a| 国产麻豆一精品一男同| 成人免费视频国产在线观看| 麻豆成人小视频| 在线观看a视频| 一个色综合av| 十八禁视频网站在线观看| 国产精品传媒麻豆hd| 日韩你懂的在线观看| 亚洲成人日韩在线| 特级毛片www| 欧美高清影院| 精品成a人在线观看| 免费看污黄网站在线观看| 久久精品国产www456c0m| 欧美激情久久久久久| 成人毛片一区二区三区| 国产精品911| 欧美精品一区在线发布| a视频在线免费看| 日韩欧美国产高清91| 亚洲国产日韩在线一区| 欧美日韩伦理| 欧美精品久久久久久久久| 日韩国产成人在线| 懂色av中文一区二区三区| 欧美在线播放一区| 手机在线免费看av| 欧美日韩精品一二三区| 亚洲观看黄色网| 亚洲精品小说| 国产成人涩涩涩视频在线观看| 久久久久久久久久久久国产精品| 麻豆精品久久久久久久99蜜桃| 日本va欧美va精品发布| 国产日韩欧美一区二区| 二区三区四区高清视频在线观看| 懂色av中文一区二区三区天美| 在线观看av免费观看| 国产99亚洲| 午夜精品一区二区三区在线 | 亚洲国产精品免费| 成人免费精品动漫网站| 秋霞影院一区二区| 免费在线成人av电影| 日韩另类在线| 欧美精品国产精品| 亚洲色图欧美色| 久久高清一区| 精品在线不卡| 97超碰免费在线| 在线电影一区| 亚洲国产一区二区三区在线观看| 亚洲一级生活片| 免费观看成人av| 日韩在线国产| 91看片一区| 亚洲男人天堂视频| 日本一区二区三区精品| 99精品一区二区| 加勒比成人在线| 国产精品色在线网站| 九色成人免费视频| av网站免费大全| 亚洲欧美日韩久久精品| 色网站在线视频| 影视亚洲一区二区三区| 69堂成人精品视频免费| av网站在线免费| 欧美一区二区三区婷婷月色| www.av视频| 国产原创一区二区三区| 在线观看三级网站| 亚洲国产一区二区三区网站| 久久精品国产久精国产思思| 97人妻精品一区二区三区动漫| 国产精品久久久久一区二区三区 | 亚洲黄色av女优在线观看| 国产精品变态另类虐交| av日韩在线网站| 国产黄色一级网站| 国产一区二区在线| 成人黄色在线免费| 最新av在线播放| 亚洲成av人乱码色午夜| 日韩免费黄色片| 久久久久久97三级| 五月天婷婷亚洲| 欧美日韩 国产精品| 国产一区二区三区高清视频| 中文字幕色婷婷在线视频| 亚洲一级黄色片| 97人妻精品一区二区三区动漫 | 免费看欧美一级片| 久久精品国产亚洲blacked| 日本久久久a级免费| 在线观看a视频| 日韩欧美国产综合| 69视频免费在线观看| 国产精品每日更新在线播放网址 | 99热精品一区二区| 日本www.色| 欧美在线不卡| 欧美精品成人一区二区在线观看 | 99国产精品无码| 国产精品 欧美精品| 日韩欧美一区三区| 国产精品国内免费一区二区三区| 国产激情一区二区三区在线观看| 成人线上视频| 免费av一区二区| 国产永久免费高清在线观看视频| 在线播放欧美女士性生活| 日韩在线视频免费播放| 中文字幕一区二区三| 天天插天天射天天干| 麻豆成人免费电影| 国产精品无码av在线播放| 亚洲成人精品| 欧美二区在线| 日韩精品视频一区二区三区| 日本免费在线精品| 色网在线观看| 日日骚av一区| 精品久久av| 精品国产乱码久久久久久影片| 中文字幕第99页| 福利一区福利二区微拍刺激| 神马久久精品综合| 国产视频一区在线播放| 精品人妻在线视频| 久久国产麻豆精品| 成年人免费大片| 日韩午夜免费| 日本a级片在线播放| 色喇叭免费久久综合| 裸模一区二区三区免费| 国产精品白浆| 99久久精品免费看国产四区 | 成人黄色a级片| 99精品久久免费看蜜臀剧情介绍| 天天操夜夜操很很操| 日本欧洲一区二区| 国产a视频免费观看| 亚洲精品美女| 老子影院午夜伦不卡大全| 88国产精品视频一区二区三区| 日韩精品久久久| 九色精品91| 久久久久久国产精品mv| swag国产精品一区二区| 91在线在线观看| 日本一区精品视频| 91网站在线看| 成人污污视频| 亚洲综合色激情五月| 国产亚洲久久| 91丝袜美腿美女视频网站| 欧洲美女精品免费观看视频| 国产精品午夜一区二区欲梦| 999国产精品亚洲77777| 国产精品久久久久aaaa九色| 欧美最新精品| 国产精品久久久久久久久久久新郎| 国产精品av一区二区三区 | 成人免费在线视频播放| 欧美在线黄色| 精品无码国产一区二区三区av| 影音先锋久久久| 久久精品视频16| 免费一区视频| 精品久久久噜噜噜噜久久图片 | www.四虎精品| 91小视频在线免费看| 一起草在线视频| 26uuu欧美| 女人十八毛片嫩草av| 国产精品入口麻豆原神| 最新一区二区三区| 一区二区三区欧美日| 久操视频免费在线观看| 午夜精品一区二区三区免费视频| 国产精品美女久久久久av爽| 色综合天天视频在线观看| 国产又粗又猛又爽又| 欧美日韩在线一区二区| 国产丰满美女做爰| 日韩av在线网址| 国产精品四虎| 久热国产精品视频| 国产www视频在线观看| 欧美亚洲国产视频小说| 国产精品99| 国产精品久久久久久久小唯西川 | 六月激情综合网| 男人操女人的视频在线观看欧美| 一区二区三区欧美精品| 高清久久久久久| 少妇久久久久久久久久| 亚洲欧美自拍偷拍色图| 国产精品免费av一区二区| 在线精品视频免费播放| www.成人精品| 亚洲欧美成人一区二区在线电影| 在线免费看a| 国内精品一区二区三区四区| 亚洲承认视频| 国产福利久久| 青青草97国产精品麻豆| 青青青在线观看视频| 日韩国产精品久久久| 台湾佬美性中文| 国产日韩欧美一区二区三区综合| 国产一二三区精品| 91福利在线导航| 亚洲第一第二区| 中文字幕九色91在线| aaa在线播放视频| 成人激情春色网| 最新亚洲精品| 久久手机在线视频| 另类中文字幕网| 99久久国产精| 一区二区三区四区不卡视频| 欧美另类高清videos的特点| 精品久久国产老人久久综合| 在线观看免费网站黄| 国产91精品久| 日韩免费高清视频网站| 天堂资源在线亚洲资源| 99成人免费视频| 黑人无套内谢中国美女| 国产精品久久久久影院色老大 | 日韩亚洲欧美一区二区三区| 国产在线91| 欧美一级在线亚洲天堂| 99精品在免费线中文字幕网站一区| 亚洲欧美日韩精品久久久 | 国产aⅴ爽av久久久久| 久久免费午夜影院| 亚欧视频在线观看| 欧美va亚洲va在线观看蝴蝶网| 青青青青在线| 国产精自产拍久久久久久| 国产一区二区三区四区五区| 无码aⅴ精品一区二区三区浪潮 | 亚洲xxx视频| 日韩久久视频| 亚洲福利精品视频| 国产日韩欧美高清| 无码人妻aⅴ一区二区三区有奶水 无码免费一区二区三区 | 可以在线看的av网站| 国产精品羞羞答答xxdd| 中文国语毛片高清视频| 欧美亚洲高清一区| 伦理片一区二区三区| 57pao精品| 日韩高清成人在线| 一女被多男玩喷潮视频| 成人久久久精品乱码一区二区三区| 久久久精品视频免费观看| 日韩视频免费观看高清在线视频| 精品黄色免费中文电影在线播放| 国产日韩精品入口| 久久精品久久久| 亚欧精品在线视频| 夜夜精品视频一区二区| 亚洲精品911| 久久久这里只有精品视频| 国产精品jk白丝蜜臀av小说| www.av中文字幕| www国产亚洲精品久久麻豆| 天堂а√在线中文在线新版| 精品亚洲va在线va天堂资源站| 中文字幕21页在线看| 亚洲成人自拍视频| 经典一区二区三区| 久草网在线观看| 亚洲激情久久久| 成人软件在线观看| 日韩成人av网站| 久久se精品一区精品二区| 九九热最新地址| 亚洲电影第1页| 欧美香蕉视频| 一区高清视频| 国产成人精品一区二区三区网站观看| 久久99久久久| 日韩精品中文字| 日本一区二区电影| 男女爱爱视频网站| 99视频超级精品| 最新国产中文字幕| 九九久久国产精品| 天海翼亚洲一区二区三区| 天美星空大象mv在线观看视频| 日韩美女啊v在线免费观看| 东京干手机福利视频| 日韩美女免费观看| 欧美在线二区| 成人影视免费观看| 欧美日韩国产一级片| 阿v视频在线观看| 亚洲a∨一区二区三区| 成人免费的视频| 国产一级精品毛片| 久久久视频精品| 区一区二视频| 亚洲午夜久久久久久久久| 欧美午夜精品久久久久久超碰 | 国产97人人超碰caoprom| 99re66热这里只有精品8| 国产黑丝在线观看| 欧美久久久影院| 成人小电影网站| 日本男女交配视频| 中文字幕av资源一区| 欧美 日韩 国产 精品| 国产精品日韩在线观看| 亚洲精品社区|