查詢了好多資料池摧,都沒有找到可以直接應(yīng)用的牍陌,綜合了好多响牛,配置runner之后,前端項(xiàng)目里面需要在項(xiàng)目根目錄配置三個(gè)文件:
1..gitlab-ci.yml 文件
stages:
- build
- deploy
# 設(shè)置緩存
cache:
paths:
- node_modules/
- dist/
# 安裝依賴 before_script 會(huì)在每個(gè) stages 執(zhí)行之前運(yùn)行
before_script:
- npm install
# 編譯 這里對(duì)應(yīng)上方 stages 鞍历,
build:
stage: build
script:# script 為要執(zhí)行的命令,可以多條按順序執(zhí)行
? ? - npm run build:prod
docker-deploy:
stage: deploy
# 執(zhí)行Job內(nèi)容
? script:
# 通過Dockerfile生成pactera_pflife_ui鏡像
? ? - sudo docker build -t pactera_pflife_ui .
# 刪除已經(jīng)在運(yùn)行的容器
? ? - if [ $(docker ps -aq --filter name= pactera_pflife_ui) ]; then sudo docker rm -f pactera_pflife_ui;fi
# 通過鏡像啟動(dòng)容器
? ? - sudo docker run -d -p 8085:80 --name pactera_pflife_ui pactera_pflife_ui
tags:
# 執(zhí)行Job的服務(wù)器
? ? - pflife-web
only:
# 只有在master分支才會(huì)執(zhí)行
? ? - dev_xht
2.Dockerfile 文件
# 設(shè)置基礎(chǔ)鏡像
FROM nginx:latest
# 將dist文件中的內(nèi)容復(fù)制到 /usr/share/nginx/html/ 這個(gè)目錄下面
COPY dist/ /usr/share/nginx/html
# 用本地的 default.conf 配置來替換nginx鏡像里的默認(rèn)配置
COPY default.conf/etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
3.default.conf文件
server {
listen? ? ? 80;
server_name? 39.100.9.6; # localhost修改為docker服務(wù)宿主機(jī)的ip
location / {
root? /usr/share/nginx/html;
index? index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
location /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://39.100.9.6:8090/;
}
error_page? 500 502 503 504? /50x.html;
? ? location = /50x.html {
root? html;
}
}
總之肪虎,三個(gè)文件部署之后運(yùn)行正常