成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

DevOps 基于Walle的小型持續(xù)集成實(shí)戰(zhàn)(六)基于Walle發(fā)布前端React,Angular

tuomao / 2269人閱讀

摘要:本章用于講解如何在下構(gòu)建和運(yùn)行前端應(yīng)用。項(xiàng)目配置服務(wù)名稱鏡像版本映射容器端口到本地端口數(shù)據(jù)卷映射本地文件到容器映射文件到容器的目錄并覆蓋文件映射文件夾到容器的文件夾覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令。環(huán)境準(zhǔn)備參考文檔

本章用于講解如何在walle下構(gòu)建和運(yùn)行前端應(yīng)用。主要包含React,Angular應(yīng)用,以Nginx+Docker運(yùn)行(Vue方式不講,大家自行研究)
新建項(xiàng)目
項(xiàng)目中心 > 項(xiàng)目管理 > 新建項(xiàng)目

以下是一份配置好的項(xiàng)目表

分組 項(xiàng)目 參考 備注
基本配置 項(xiàng)目名稱 dev-我的JavaDemo項(xiàng)目 隨便填寫,名稱不要太長(zhǎng)(不好看),最好把環(huán)境卸載最前,例如dev(開發(fā)環(huán)境)
基本配置 環(huán)境 開發(fā)環(huán)境 提前在環(huán)境管理配置好即可
基本配置 Git Repo [email protected]:xxx/react-demo.git Git倉(cāng)庫(kù)地址
目標(biāo)集群 目標(biāo)集群 192.168.0.122 提前配置服務(wù)器管理
目標(biāo)集群 目標(biāo)集群部署路徑 /data/walle-build/react-demo 實(shí)際運(yùn)行的環(huán)境
目標(biāo)集群 目標(biāo)集群部署倉(cāng)庫(kù) /data/walle-run 會(huì)存放多個(gè)版本編譯后的項(xiàng)目
目標(biāo)集群 目標(biāo)集群部署倉(cāng)庫(kù)版本保留數(shù) 5 可以回滾的版本數(shù)
配置腳本

前端生態(tài)下基本腳本區(qū)別較大,但擁有共通性,此處以Angular為例

基本腳本
任務(wù)配置 - 部署包含文件

包含方式

docker-compose.yml
nginx.conf
dist

該方式用于描述從源碼包到發(fā)布包中,排除/包含的內(nèi)容。一般java使用target即可

任務(wù)配置 - 自定義全局變量
# 運(yùn)行目錄
# 運(yùn)行目錄
NG_PATH=/data/walle-tool/node-v10.5.0-linux-x64/lib/node_modules/@angular/cli/bin
PORT=2222
ENV=test
SERVER_NAME=ui-demo
【Angular to Docker】
部署包含文件 - 包含
docker-compose.yml
nginx.conf
dist
自定義全局變量
# 運(yùn)行目錄
NG_PATH=/data/skong-tool/node-v10.5.0-linux-x64/lib/node_modules/@angular/cli/bin
# ln -s /data/skong-tool/node-v10.5.0-linux-x64/lib/node_modules/@angular/cli/bin/ng /usr/bin/ng
PORT=2222
ENV=test
SERVER_NAME=idp-server-ui-test
任務(wù)配置 - 高級(jí)任務(wù)-Deploy前置任務(wù)
pwd
echo "開始初始化"
npm install @angular/[email protected] -g || echo "安裝失敗"
任務(wù)配置 - 高級(jí)任務(wù)-Deploy后置任務(wù)
pwd
unzip -q node_modules.zip
echo "${NG_PATH}/ng -v"
${NG_PATH}/ng -v || echo "環(huán)境檢查失敗"
${NG_PATH}/ng build  --prod --configuration=${ENV}
sed -i "s/${container_port}/"${PORT}"/g" docker-compose.yml 
sed -i "s/${container_name}/"${SERVER_NAME}"/g" docker-compose.yml 
任務(wù)配置 - 高級(jí)任務(wù)-Release前置任務(wù)
docker-compose -p ${SERVER_NAME}  -f ${WEBROOT}/docker-compose.yml down || echo "服務(wù)不存在"
docker stop ${SERVER_NAME} || echo "服務(wù)不存在"
docker rm ${SERVER_NAME} || echo "服務(wù)不存在"
rm -rf ${WEBROOT}
任務(wù)配置 - 高級(jí)任務(wù)-Release后置任務(wù)
docker-compose -p ${SERVER_NAME}  up -d
echo "服務(wù)啟動(dòng)完成"
項(xiàng)目 - nginx.conf 配置
# gzip設(shè)置
gzip on;
gzip_vary on;

gzip_comp_level 6;
gzip_buffers 16 8k;

gzip_min_length 1000;
gzip_proxied any;
gzip_disable "msie6";
#gzip_http_version 1.0;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

server {
  listen       80;
  server_name  localhost;

  #charset koi8-r;
  #access_log  /var/log/nginx/host.access.log  main;

  location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    # 其作用是按順序檢查文件是否存在,返回第一個(gè)找到的文件或文件夾(結(jié)尾加斜線表示為文件夾),如果所有的文件或文件夾都找不到,會(huì)進(jìn)行一個(gè)內(nèi)部重定向到最后一個(gè)參數(shù)。
    try_files $uri /index.html;
  }

  #error_page  404              /404.html;

  # redirect server error pages to the static page /50x.html
  #
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
    root   /usr/share/nginx/html;
  }

  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ .php$ {
  #    proxy_pass   http://127.0.0.1;
  #}

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  #location ~ .php$ {
  #    root           html;
  #    fastcgi_pass   127.0.0.1:9000;
  #    fastcgi_index  index.php;
  #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  #    include        fastcgi_params;
  #}

  # deny access to .htaccess files, if Apache"s document root
  # concurs with nginx"s one
  #
  #location ~ /.ht {
  #    deny  all;
  #}
}
項(xiàng)目 - docker-compose.yml配置
version: "2"
services:
  # 服務(wù)名稱
  nginx:
    # 鏡像:版本
    image: nginx:latest
    container_name: ${container_name}
    # 映射容器80端口到本地80端口
    ports:
     - "${container_port}:80"
    # 數(shù)據(jù)卷 映射本地文件到容器
    volumes:
    # 映射nginx.conf文件到容器的/etc/nginx/conf.d目錄并覆蓋default.conf文件
     - ./nginx.conf:/etc/nginx/conf.d/default.conf
    # 映射build文件夾到容器的/usr/share/nginx/html文件夾
     - ./dist/idp-server-ui:/usr/share/nginx/html
    # 覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令。
    command: /bin/bash -c "nginx -g "daemon off;""

【React Antdesign Pro to Docker】
部署包含文件 - 包含
docker-compose.yml
nginx.conf
dist
自定義全局變量
# 運(yùn)行目錄
PORT=2222
ENV=test
SERVER_NAME=ui-demo
任務(wù)配置 - 高級(jí)任務(wù)-Deploy前置任務(wù)
pwd
echo "開始初始化"
npm install -g umi || echo "安裝失敗"
任務(wù)配置 - 高級(jí)任務(wù)-Deploy后置任務(wù)
pwd
unzip -q node_modules.zip
echo "${NG_PATH}/ng -v"
UMI_ENV=dev umi build
sed -i "s/${container_port}/"${PORT}"/g" docker-compose.yml 
sed -i "s/${container_name}/"${SERVER_NAME}"/g" docker-compose.yml 
任務(wù)配置 - 高級(jí)任務(wù)-Release前置任務(wù)
docker-compose -p ${SERVER_NAME}  -f ${WEBROOT}/docker-compose.yml down || echo "服務(wù)不存在"
docker stop ${SERVER_NAME} || echo "服務(wù)不存在"
docker rm ${SERVER_NAME} || echo "服務(wù)不存在"
rm -rf ${WEBROOT}
任務(wù)配置 - 高級(jí)任務(wù)-Release后置任務(wù)
docker-compose -p ${SERVER_NAME}  up -d
echo "服務(wù)啟動(dòng)完成"
項(xiàng)目 - nginx.conf 配置
# gzip設(shè)置
gzip on;
gzip_vary on;

gzip_comp_level 6;
gzip_buffers 16 8k;

gzip_min_length 1000;
gzip_proxied any;
gzip_disable "msie6";
#gzip_http_version 1.0;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

server {
  listen       80;
  server_name  localhost;

  #charset koi8-r;
  #access_log  /var/log/nginx/host.access.log  main;

  location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    # 其作用是按順序檢查文件是否存在,返回第一個(gè)找到的文件或文件夾(結(jié)尾加斜線表示為文件夾),如果所有的文件或文件夾都找不到,會(huì)進(jìn)行一個(gè)內(nèi)部重定向到最后一個(gè)參數(shù)。
    try_files $uri /index.html;
  }

  #error_page  404              /404.html;

  # redirect server error pages to the static page /50x.html
  #
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
    root   /usr/share/nginx/html;
  }

  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ .php$ {
  #    proxy_pass   http://127.0.0.1;
  #}

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  #location ~ .php$ {
  #    root           html;
  #    fastcgi_pass   127.0.0.1:9000;
  #    fastcgi_index  index.php;
  #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  #    include        fastcgi_params;
  #}

  # deny access to .htaccess files, if Apache"s document root
  # concurs with nginx"s one
  #
  #location ~ /.ht {
  #    deny  all;
  #}
}
項(xiàng)目 - docker-compose.yml配置
version: "2"
services:
  # 服務(wù)名稱
  nginx:
    # 鏡像:版本
    image: nginx:latest
    container_name: ${container_name}
    # 映射容器80端口到本地80端口
    ports:
     - "${container_port}:80"
    # 數(shù)據(jù)卷 映射本地文件到容器
    volumes:
    # 映射nginx.conf文件到容器的/etc/nginx/conf.d目錄并覆蓋default.conf文件
     - ./nginx.conf:/etc/nginx/conf.d/default.conf
    # 映射build文件夾到容器的/usr/share/nginx/html文件夾
     - ./dist/idp-server-ui:/usr/share/nginx/html
    # 覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令。
    command: /bin/bash -c "nginx -g "daemon off;""
環(huán)境準(zhǔn)備

參考文檔: https://segmentfault.com/a/11...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27887.html

相關(guān)文章

  • DevOps 基于Walle小型持續(xù)集成實(shí)戰(zhàn)(二)設(shè)計(jì)

    摘要:以便對(duì)整個(gè)持續(xù)集成印象加深。配置完各環(huán)境發(fā)布腳本后,則可以使用構(gòu)建發(fā)起進(jìn)行觸發(fā)環(huán)境準(zhǔn)備。并會(huì)在遠(yuǎn)程環(huán)境上存放多次發(fā)布的版本,用于回退和切換服務(wù)停用。進(jìn)行等操作,停止原本運(yùn)行的服務(wù)切換啟用。 該文章用于建立一個(gè)小型的基于Walle的持續(xù)集成工具。解決java,react,angular項(xiàng)目的編譯發(fā)布。以便對(duì)整個(gè)持續(xù)集成印象加深。官方網(wǎng)站:https://walle-web.io/ 適用...

    zr_hebo 評(píng)論0 收藏0
  • DevOps 基于Walle小型持續(xù)集成實(shí)戰(zhàn)(七)總結(jié)

    摘要:當(dāng)前版本針對(duì)于安裝版概要整體流程貫通,基本可以達(dá)到實(shí)用級(jí)別。仍舊有很多需要提高的地方發(fā)布構(gòu)建時(shí)部署上線服務(wù)器卡頓嚴(yán)重,基本不可以多項(xiàng)目發(fā)布。 該文章旨在描述從零開始搭建環(huán)境,中間遇到的問(wèn)題以及最終的經(jīng)驗(yàn)總結(jié)。當(dāng)前版本針對(duì)于2.0 docker安裝版 概要 整體流程貫通,基本可以達(dá)到實(shí)用級(jí)別。滿足2-5臺(tái)服務(wù)器,少量的應(yīng)用部署是完全可以的,但達(dá)到一定規(guī)模之后則Walle和Jenkins...

    iliyaku 評(píng)論0 收藏0
  • DevOps 基于Walle小型持續(xù)集成實(shí)戰(zhàn)(一)概述

    摘要:該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案什么是持續(xù)集成持續(xù)集成作為當(dāng)今軟件開發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回造成每天會(huì)有多次的版本發(fā)布。 該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案 什么是持續(xù)集成? 持續(xù)集成作為當(dāng)今軟件開發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回...

    Yangyang 評(píng)論0 收藏0
  • DevOps 基于Walle小型持續(xù)集成實(shí)戰(zhàn)(五)基于Walle發(fā)布Java應(yīng)用

    摘要:本章用于講解如何在下構(gòu)建和運(yùn)行。編譯發(fā)版都是基于的容器,下完成的。 本章用于講解如何在walle下構(gòu)建和運(yùn)行JavaWeb。主要包含SpringBoot,ScalaAkkaWeb應(yīng)用,以Java -jar和Docker運(yùn)行兩種方式(Tomcat方式不講,大家自行研究) 新建項(xiàng)目 項(xiàng)目中心 > 項(xiàng)目管理 > 新建項(xiàng)目 以下是一份配置好的項(xiàng)目表 分組 項(xiàng)目 參考 備注 基本配置 ...

    qc1iu 評(píng)論0 收藏0
  • DevOps 基于Walle小型持續(xù)集成實(shí)戰(zhàn)(三)Docker與Gitlab

    摘要:自動(dòng)化測(cè)試和持續(xù)集成發(fā)布。在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)用。容器與鏡像的關(guān)系類似于面向?qū)ο缶幊讨械膶?duì)象與類。容器容器是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用。提供了龐大的鏡像集合供使用。 還在按照mysql安裝教程一步一步配置服務(wù)配置賬戶嗎?還在為每開一個(gè)新環(huán)境重新配置這些服務(wù)感到苦惱嗎?使用Docker,服務(wù)快速構(gòu)建部署。解決你的研發(fā)時(shí)間,早點(diǎn)下班~現(xiàn)代技術(shù),還不會(huì)docker你就落...

    since1986 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<