中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

星沙做淘寶店鋪網(wǎng)站seo偽原創(chuàng)工具

星沙做淘寶店鋪網(wǎng)站,seo偽原創(chuàng)工具,做外匯網(wǎng)站賣判刑多少年,天津網(wǎng)站建設(shè)價(jià)格多少項(xiàng)目目錄 app/ ├── container/ │ ├── init.sh │ ├── nginx.conf.template ├── src/ ├── .gitlab-ci.yml └── deploy.sh └── Dockerfile └── Makefilecontainer目錄是放nginx的配置文件,給nginx鏡像使用 .gitlab-ci.yml和Makefile是c…

項(xiàng)目目錄

app/
├── container/
│   ├── init.sh
│   ├── nginx.conf.template
├── src/
├── .gitlab-ci.yml
└── deploy.sh
└── Dockerfile
└── Makefile

container目錄是放nginx的配置文件,給nginx鏡像使用
.gitlab-ci.yml和Makefile是cicd自動(dòng)發(fā)版,適用于測(cè)試環(huán)境和生產(chǎn)環(huán)境
deploy.sh是使用shell手動(dòng)發(fā)版,適用于開(kāi)發(fā)環(huán)境

下面是以上配置文件

init.sh
主要作用是根據(jù)env環(huán)境變量替換nginx的反向代理地址

#!/bin/bash
BACKENDURL=$BACKENDURL
export "BACKENDURL"=$BACKENDURL
envsubst '$BACKENDURL' < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf && nginx -g 'daemon off;'

nginx.conf.template

user root;
events {worker_connections  4096;  ## Default: 1024
}http {proxy_connect_timeout 300000;   #連接握手時(shí)間proxy_send_timeout 300000;     # 設(shè)置發(fā)送超時(shí)時(shí)間,proxy_read_timeout 300000;     # 設(shè)置讀取超時(shí)時(shí)間。client_max_body_size 100M;include /etc/nginx/mime.types;sendfile on;server {listen 80;listen [::]:80;add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers X-Requested-With,access-token,Access-Token,Refresh-Token,Accept,Content-Type,User-Agent;add_header Access-Control-Allow-Methods GET,POST,OPTIONS;location / {root   /usr/share/nginx/html;index index.html;try_files $uri $uri/ /index.html;}location ^~/api/ {proxy_set_header Host $host;proxy_set_header  X-Real-IP        $remote_addr;proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header X-NginX-Proxy true;proxy_pass $BACKENDURL; #后端實(shí)際服務(wù)器地址add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Headers X-Requested-With,access-token,Access-Token,Refresh-Token,Accept,Content-Type,User-Agent;add_header Access-Control-Allow-Methods GET,POST,OPTIONS;}}
}

Dockerfile
鏡像內(nèi)編譯打包,因?yàn)榉?wù)器上可能有多個(gè)node項(xiàng)目版本會(huì)有兼容問(wèn)題,直接容器內(nèi)編譯

# 編譯打包
FROM node:18-alpine as builder
WORKDIR /app
COPY package.json .
ENV NODE_OPTIONS=--openssl-legacy-provider
RUN npm install
COPY . .
RUN npm run build# 運(yùn)行應(yīng)用
FROM nginx:latest
COPY --from=builder /app/dist /usr/share/nginx/html
COPY container/nginx.conf.template /etc/nginx/nginx.conf.template
COPY container/init.sh /init.sh
RUN chmod 777 init.sh
EXPOSE 80CMD ["/bin/bash", "/init.sh"]

deploy.sh
人工發(fā)版時(shí)運(yùn)行腳本
部署腳本里面打包命令、項(xiàng)目名字、端口、后端地址記得更換

#!/bin/bash
set -xfunction show_help {echo "Usage: $0 [OPTIONS]"echo "Options:"echo "  --mode=<mode>   Set the mode (local, dev, test, prod)"
}
# 保存輸入的參數(shù)
args=("$@")
# 使用 shift 命令去除已處理的位置參數(shù)
shift
# 處理命令行參數(shù)
for ((i = 0; i < "${#args[@]}"; i++)); docase "${args[$i]}" in--mode=* | -mode=*)mode="${args[$i]#*=}";;--mode | -mode)mode="${args[$((i + 1))]}";;--help)show_helpexit 0;;esac
done
# 如果 mode 不在合法的模式值中,則輸出錯(cuò)誤信息
if ! $valid; thenecho "mode值只能是:空值 local, dev, test, prod."exit 1
fi
# 根據(jù) mode 設(shè)置不同的 BACKENDURL 地址
if [ "$mode" == "dev" ]; thenBACKENDURL="http://xxxx"
elif [ "$mode" == "test" ]; thenBACKENDURL="http://xxxx"
elif [ "$mode" == "prod" ]; thenBACKENDURL="-"
elseBACKENDURL="http://xxxx"
finame="project"
port=8080
version="latest"
current_user=$(whoami)
echo "當(dāng)前用戶:${current_user}"
# 拉代碼和打包鏡像
git pull
# 設(shè)置 node_modules 為當(dāng)前用戶
sudo chown -R $current_user:$current_user ./
sudo docker build -f Dockerfile -t $name:$version .
# 停止并刪除容器
sudo docker stop "$name"
sudo docker rm "$name" -f
# 啟動(dòng)容器
sudo docker run --restart=always --name $name -p $port:80 -e BACKENDURL="$BACKENDURL" -d $name:$version

人工發(fā)版

運(yùn)行命令

# 記得先給部署腳本+執(zhí)行權(quán)限
chmod +x ./deploy.sh
./deploy.sh --mode dev

運(yùn)行截圖
在這里插入圖片描述
在這里插入圖片描述
項(xiàng)目成功運(yùn)行
然后瀏覽器訪問(wèn):http://xxx.xxx.com:21000

gitlab-cicd的下一篇文章寫(xiě)叭

http://www.risenshineclean.com/news/59386.html

相關(guān)文章:

  • 江門(mén)做公司網(wǎng)站百度競(jìng)價(jià)排名公式
  • 網(wǎng)站后臺(tái) 更新緩存品牌推廣方式
  • 網(wǎng)站維護(hù)開(kāi)發(fā)合同seo怎么做推廣
  • 課程網(wǎng)站怎么做關(guān)鍵詞優(yōu)化app
  • 從化專業(yè)做網(wǎng)站培訓(xùn)網(wǎng)站模板
  • 內(nèi)蒙古網(wǎng)站建設(shè)價(jià)格qq推廣官網(wǎng)
  • 遼寧新聞網(wǎng)站的建設(shè)seo官網(wǎng)
  • 個(gè)人網(wǎng)站 cdn學(xué)生個(gè)人網(wǎng)頁(yè)設(shè)計(jì)作品
  • 網(wǎng)站主機(jī)空間價(jià)格廣州網(wǎng)站運(yùn)營(yíng)專注樂(lè)云seo
  • 做淘寶客服的網(wǎng)站數(shù)字營(yíng)銷
  • 深圳網(wǎng)站建設(shè) 設(shè)計(jì)創(chuàng)公司搜索排名廣告營(yíng)銷怎么做
  • 深圳做網(wǎng)站專業(yè)公司產(chǎn)品軟文范例100字
  • 圖展網(wǎng)站源碼云和數(shù)據(jù)培訓(xùn)機(jī)構(gòu)怎么樣
  • 個(gè)體戶可以備案網(wǎng)站嗎上海網(wǎng)站建設(shè)公司
  • 做淘寶頭像的網(wǎng)站有哪些百度競(jìng)價(jià)查詢
  • 做外貿(mào)要自己建網(wǎng)站嗎百度指數(shù)的各項(xiàng)功能
  • 電子商務(wù)網(wǎng)站建設(shè)與完整實(shí)例seo網(wǎng)站推廣是什么
  • 做電腦網(wǎng)站手機(jī)能顯示廣州seo招聘網(wǎng)
  • 打開(kāi)網(wǎng)站占空間百度推廣渠道代理
  • 做個(gè)人網(wǎng)站要注意什么線上推廣的渠道有哪些
  • 怎么建立一個(gè)網(wǎng)站csdn網(wǎng)絡(luò)營(yíng)銷的重要性與意義
  • 南網(wǎng)站建設(shè)百度廣告推廣收費(fèi)標(biāo)準(zhǔn)
  • 做美工的網(wǎng)站外貿(mào)營(yíng)銷網(wǎng)站怎么建站
  • wordpress站長(zhǎng)免費(fèi)的十大免費(fèi)貨源網(wǎng)站
  • 旅游網(wǎng)站用dw怎么做百度推廣找誰(shuí)
  • 公司網(wǎng)站的實(shí)例百度seo排名優(yōu)化是什么
  • 做電影網(wǎng)站還能賺錢(qián)嗎黃頁(yè)推廣平臺(tái)有哪些
  • friday wordpress深圳seo優(yōu)化排名推廣
  • 刷單平臺(tái)網(wǎng)站建設(shè)深圳seo優(yōu)化公司哪家好
  • 可以用來(lái)做論文引用的網(wǎng)站2345網(wǎng)址導(dǎo)航怎么下載