/data/container/nginx/html目錄,因為要發布的靜" />

国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

【微服務部署】Jenkins+Docker一鍵打包部署Vue項目步驟詳解

來源: 責編: 時間:2023-09-18 21:41:36 393觀看
導讀一、服務器環境配置?前面說明了服務器Nginx的安裝和配置,這里稍微有些不同,但是因為此文是用Nginx鏡像和前端鏡像頁面同時部署的方式來打包發布的,所以這里不再需要建立
/data/container/nginx/html目錄,因為要發布的靜

cL028資訊網——每日最新資訊28at.com

一、服務器環境配置

?前面說明了服務器Nginx的安裝和配置,這里稍微有些不同,但是因為此文是用Nginx鏡像和前端鏡像頁面同時部署的方式來打包發布的,所以這里不再需要建立
/data/container/nginx/html目錄,因為要發布的靜態頁面已經在Nginx鏡像中的/nginx/html目錄了。這里也減少了手動部署安裝Nginx的步驟,而是在Jenkins任務中調用shell命令自動執行安裝。
cL028資訊網——每日最新資訊28at.com

1、新建Dockerfile文件,用于定義Nginx鏡像,及將打包成功的靜態文件復制到鏡像中,此文件放在前端項目的根目錄下,Jenkins打包時會從此處查找Dockerfile文件。

FROM nginx:latest# 維護者信息MAINTAINER gitegg# 將生成的靜態頁面文件復制到nginx的/usr/share/nginx/html/目錄COPY dist/ /usr/share/nginx/html/# 容器啟動時運行的命令CMD ["nginx", "-g", "daemon off;"]

2、部署及備份目錄準備

  • 新建 /opt/tmp 目錄,用于Jenkins打包后,通過 Publish Over SSH插件將包傳輸到服務器的臨時目錄(如果前面創建過,這里無需再創建)。
  • 新建 /opt/bak 目錄,用于存儲所有部署過的包備份,方便后續版本回滾。此目錄可能會占用很大空間,所以需要選擇一個磁盤空間大的掛載目錄(如果前面創建過,這里無需再創建)。
  • 新建 /opt/script 目錄,用于Jenkins將包傳輸完成之后,執行安裝、備份操作的相關命令腳本(如果前面創建過,這里無需再創建)。
  • 新建 /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配置文件
mkdir -p /opt/tmp /opt/bak /opt/script /data/container/nginx/www /data/container/nginx/logs  /data/container/nginx/etcchmod -R 777 /opt/tmp /opt/bak /opt/script /data/container/nginx/www /data/container/nginx/logs  /data/container/nginx/etc

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任務將參數傳入腳本中,我們定義了下面7個參數:
    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"fiecho "container_name=" $container_nameif [ "$2" != "" ]; then   image_name="$2"fiif [ "$3" != "" ]; then   version="$3"fiecho "version=" $versionif [ "$4" != "" ]; then   portal_port="$4"fiecho "portal_port=" $portal_portif [ "$5" != "" ]; then   server_port="$5"fiecho "server_port=" $server_portif [ "$6" != "" ]; then   portal_ssl_port="$6"fiecho "portal_ssl_port=" $portal_ssl_portif [ "$7" != "" ]; then   serve_sslr_port="$7"fiecho "serve_sslr_port=" $serve_sslr_port
  • 停止并刪除容器
echo "執行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_nameelse   echo $container_name "容器不存在"fi
  • 停止并刪除鏡像
# 刪除鏡像echo "執行docker images"docker imagesif [[ "$(docker images -q $image_name 2> /dev/null)" != "" ]]; then   echo $image_name '鏡像存在,刪除鏡像'  docker rmi $(docker images -q $image_name 2> /dev/null) --forceelse   echo $image_name '鏡像不存在'fi
  • 備份本次安裝鏡像包
#bak imageecho "bak image" $image_nameBAK_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_namedocker load --input /opt/tmp/portal-image.tar
  • 執行運行命令
echo "docker run" $image_namedocker 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_namerm -rf /opt/tmp/portal-image.tar
  • 打印執行完成的命令
echo "Docker Portal is starting,please try to access $container_name conslone url"
  • 完整的安裝部署腳本
container_name=portal-serverimage_name=portal-serverversion=latestportal_port=80server_port=80portal_ssl_port=443serve_sslr_port=443echo "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  fiif [ "$1" != "" ]; then   container_name="$1"fiecho "container_name=" $container_nameif [ "$2" != "" ]; then   image_name="$2"fiif [ "$3" != "" ]; then   version="$3"fiecho "version=" $versionif [ "$4" != "" ]; then   portal_port="$4"fiecho "portal_port=" $portal_portif [ "$5" != "" ]; then   server_port="$5"fiecho "server_port=" $server_portif [ "$6" != "" ]; then   portal_ssl_port="$6"fiecho "portal_ssl_port=" $portal_ssl_portif [ "$7" != "" ]; then   serve_sslr_port="$7"fiecho "serve_sslr_port=" $serve_sslr_portecho "執行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_nameelse   echo $container_name "容器不存在"fi# 刪除鏡像echo "執行docker images"docker imagesif [[ "$(docker images -q $image_name 2> /dev/null)" != "" ]]; then   echo $image_name '鏡像存在,刪除鏡像'  docker rmi $(docker images -q $image_name 2> /dev/null) --forceelse   echo $image_name '鏡像不存在'fi#bak imageecho "bak image" $image_nameBAK_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`.tarecho "docker load" $image_namedocker load --input /opt/tmp/portal-image.tarecho "docker run" $image_namedocker 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_nameecho "remove tmp " $image_namerm -rf /opt/tmp/portal-image.tarecho "Docker Portal is starting,please try to access $container_name conslone url"

二、新建Jenkins配置打包任務,打包部署NodeJS(Vue)鏡像

1、新建任務前,安裝Docker Pipeline插件,使用Pipeline流水線任務構建部署,安裝Jenkins插件相關內容,請查看前面部署Jenkins相關文章。

cL028資訊網——每日最新資訊28at.com

  • 流水線任務可以在右側顯示階段視圖

cL028資訊網——每日最新資訊28at.com


cL028資訊網——每日最新資訊28at.com

cL028資訊網——每日最新資訊28at.com

6、構建成功后,下方會給出構建成功提示。

cL028資訊網——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-10462-0.html【微服務部署】Jenkins+Docker一鍵打包部署Vue項目步驟詳解

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 我們一起聊聊.NET 8 RC1

下一篇: 離譜!頂流游戲引擎新增斂財名目,Unity開發者徹底怒了!

標簽:
  • 熱門焦點
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 得物效率前端微應用推進過程與思考

    一、背景效率工程隨著業務的發展,組織規模的擴大,越來越多的企業開始意識到協作效率對于企業團隊的重要性,甚至是決定其在某個行業競爭中突圍的關鍵,是企業長久生存的根本。得物
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個大新聞是Meta AI推出了新的開源授權的大型語言模型Llama 2。這是一項非常重要的進展:Llama 2可免費用于研究和商業用途。(幾小時前,swyy發現它已從LLaMA 2更名為Lla
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 雅柏威士忌多款單品價格大跌,泥煤頂流也不香了?

    來源 | 烈酒商業觀察編 | 肖海林今年以來,威士忌市場開始出現了降溫跡象,越來越多不斷暴漲的網紅威士忌也開始悄然回歸市場理性。近日,LVMH集團旗下蘇格蘭威士忌品牌雅柏(Ardbeg
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元&ldquo;人在職場,應該選擇什么樣的著裝?&rdquo;近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • 四年持續更迭堅持探索行業無人之境,HarmonyOS 4帶來五大升級多項創新

    除了華為每年新發布的旗艦手機系列,上億花粉更加期待鴻蒙系統每次的跨版本大更新。8月4日,HarmonyOS 4于HDC 2023正式發布,這也是該系統歷經四年的再
  • 余承東:AI大模型技術的發展將會帶來下一代智能終端操作系統的智慧體驗

    8月4日消息,2023年華為開發者大會(HDC.Together)今天正式開幕,華為發布HarmonyOS 4、全新升級的鴻蒙開發套件、HarmonyOS Next開發者預覽版本等一系列
  • Windows 11發布,微軟一改往常對老機型開放的態度

    距離 Windows 11 發布已經過去一周,在過去一周里,很多數碼愛好者圍繞其對 Android 應用的支持、對老機型的升級問題展開了激烈討論。與以往不同的是,在這次大
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
捆绑调教一区二区三区| 一区在线免费| 欧美日韩精品伦理作品在线免费观看 | 懂色av中文字幕一区二区三区| 欧美91大片| 91高清视频免费看| 久久久噜噜噜久久中文字幕色伊伊 | 成人a区在线观看| 国产亚洲精品久久久久婷婷瑜伽| 欧美日韩国产大片| 国产精品色哟哟网站| 午夜精品成人在线视频| 欧美一区二区在线| 欧美综合视频在线观看| 中文字幕高清不卡| 国产精品亚洲午夜一区二区三区| 亚洲乱亚洲高清| 日韩三级伦理片妻子的秘密按摩| 亚洲黄色片在线观看| 国产成人超碰人人澡人人澡| 香蕉久久a毛片| 中文字幕成人av| 国产一区二区网址| 美女国产精品| 中文字幕第一区综合| 国产福利91精品一区二区三区| 午夜亚洲福利在线老司机| 日韩精品一区国产麻豆| 午夜精品一区二区三区三上悠亚| 女主播福利一区| 91精品欧美综合在线观看最新| 亚洲一区二区三区在线| 午夜久久资源| 欧美一区二区三区免费观看视频| 图片区小说区国产精品视频| 亚洲午夜一级| 国产女主播视频一区二区| 国产精品69毛片高清亚洲| 久久久久成人精品免费播放动漫| 亚洲日本一区二区三区| 色综合久久中文综合久久牛| 国产精品免费aⅴ片在线观看| 国产亚洲一区字幕| 午夜视频在线观看一区二区三区| 国产美女精品一区二区三区| 亚洲高清资源| 欧美精品色综合| 亚洲欧美日韩系列| 国产精品99久久久久久有的能看| 国语精品中文字幕| 五月天网站亚洲| 亚洲欧洲日本mm| 国产精品乱人伦中文| 欧美在线网站| 久久精品日韩一区二区三区| 99精品欧美一区二区蜜桃免费 | 欧美1区2区| 欧美国产一区视频在线观看| 99精品欧美一区二区三区小说 | 一区二区三区你懂的| 亚洲男同1069视频| 一区二区三区福利| 一区二区视频在线看| 国产精品视区| 亚洲成人av在线电影| 久久精品欧洲| 久久国产综合精品| 91超碰这里只有精品国产| 国产91在线观看| 日韩欧美在线影院| 91网站在线播放| 国产精品乱人伦一区二区| 黄色另类av| 亚洲综合精品久久| 91福利在线观看| 国产精品一线二线三线| 视频一区欧美日韩| 久久性天堂网| 激情综合色综合久久综合| 日韩一二三四区| 欧美91福利在线观看| 一区二区三区中文在线观看| 久久精品中文| 国产精品一区二区在线播放 | 影音先锋久久精品| 一区二区三区波多野结衣在线观看| 亚洲欧美日本日韩| 激情丁香综合五月| 久久精品免费在线观看| 国产一级精品aaaaa看| 日本va欧美va瓶| 欧美一区二区大片| 国产一区二区中文字幕免费看| 一区二区不卡在线播放| 欧美日韩视频在线第一区 | 久久久国产一区二区三区四区小说 | 激情图区综合网| 欧美视频一区二区| 日韩激情在线观看| 午夜宅男久久久| 亚洲福利国产精品| 亚洲免费看黄网站| 日本精品视频一区二区| www.欧美精品一二区| 亚洲一区二区三区在线看| 91精品国产手机| 亚洲日本视频| 久久99精品久久久久久国产越南| 精品国产免费一区二区三区四区| 国产在线精品一区二区中文| 蜜乳av一区二区| 国产午夜精品一区二区三区嫩草| 先锋影音一区二区三区| www.欧美色图| 麻豆精品一二三| 国产精品久久久久一区二区三区 | 国内成+人亚洲| 久久91精品国产91久久小草| 久久久精品国产免费观看同学| 国产一区二区三区久久久久久久久| 粉嫩一区二区三区性色av| 亚洲一区影音先锋| 国产三级欧美三级| 欧美午夜免费电影| 在线视频观看日韩| 国产成人午夜99999| 婷婷中文字幕综合| 中文字幕av不卡| 日韩欧美在线不卡| 色久综合一二码| 国产一区二区三区自拍| 国产不卡在线播放| 日本不卡中文字幕| 国产精品动漫网站| 26uuuu精品一区二区| 欧美日韩电影一区| 先锋亚洲精品| 日韩午夜av在线| 国产一区二区三区四区三区四| 国产精品系列在线观看| 日本色综合中文字幕| 亚洲久草在线视频| 国产精品久久久久影院老司| 精品国产一区a| 欧美日韩国产成人在线免费| 久久精品91| 亚洲少妇自拍| 亚洲福利久久| 欧美特黄a级高清免费大片a级| 欧美综合欧美视频| 美腿丝袜亚洲一区| 欧美高清在线一区| 欧美日韩大陆一区二区| 狠狠爱成人网| 国产福利一区二区三区| 亚洲一二三四区不卡| 精品国产乱码久久久久久蜜臀| 国产精品伊人日日| 成人av影视在线观看| 亚洲第一会所有码转帖| 久久久亚洲高清| 精品视频资源站| 中文网丁香综合网| 99国产精品久久久久久久久久久| 五月天亚洲婷婷| 综合久久久久久| 精品国产乱码久久久久久牛牛| 在线中文字幕一区二区| 国产精品成人一区二区网站软件| 国产成人在线网站| 美洲天堂一区二卡三卡四卡视频| 国产精品不卡在线| 久久久久国产一区二区三区四区 | 国产精品护士白丝一区av| 日韩精品中文字幕一区二区三区 | 日韩视频在线观看国产| 99国产精品久久久久久久久久久| 美日韩黄色大片| 香蕉久久夜色精品国产使用方法 | 亚洲国产精品v| 精品国产一区二区三区久久久蜜月| 欧美少妇一区二区| 亚洲欧美日韩一区在线观看| 亚洲天堂男人| 欧美精品大片| 色综合久久综合| 91在线小视频| caoporen国产精品视频| 国产酒店精品激情| 久久99精品国产| 久久精品国产精品青草| 日本成人在线网站| 亚洲va天堂va国产va久| 亚洲午夜久久久久久久久电影网 | 久久久久久日产精品| 欧美变态tickling挠脚心| 这里只有精品99re| 欧美日韩免费在线视频| 欧美日韩久久一区| 欧美午夜一区二区三区|