gitLab CI/CD docker自动部署vue前端项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitLab CI/CD docker自动部署vue前端项目相关的知识,希望对你有一定的参考价值。

参考技术A 查询了好多资料,都没有找到可以直接应用的,综合了好多,配置runner之后,前端项目里面需要在项目根目录配置三个文件:

1..gitlab-ci.yml 文件

stages:

- build

- deploy

# 设置缓存

cache:

paths:

- node_modules/

- dist/

# 安装依赖 before_script 会在每个 stages 执行之前运行

before_script:

- npm install

# 编译 这里对应上方 stages ,

build:

stage: build

script:# script 为要执行的命令,可以多条按顺序执行

    - npm run build:prod

docker-deploy:

stage: deploy

# 执行Job内容

  script:

# 通过Dockerfile生成pactera_pflife_ui镜像

    - sudo docker build -t pactera_pflife_ui .

# 删除已经在运行的容器

    - if [ $(docker ps -aq --filter name= pactera_pflife_ui) ]; then sudo docker rm -f pactera_pflife_ui;fi

# 通过镜像启动容器

    - sudo docker run -d -p 8085:80 --name pactera_pflife_ui pactera_pflife_ui

tags:

# 执行Job的服务器

    - pflife-web

only:

# 只有在master分支才会执行

    - dev_xht

2.Dockerfile 文件

# 设置基础镜像

FROM nginx:latest

# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面

COPY dist/ /usr/share/nginx/html

# 用本地的 default.conf 配置来替换nginx镜像里的默认配置

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服务宿主机的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;





总之,三个文件部署之后运行正常

以上是关于gitLab CI/CD docker自动部署vue前端项目的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab CI/CD配置-并发送消息到飞书

Gitlab+Gitlab-CI+Docker实现持续集成(CI)与持续部署(CD)

Gitlab CI/CD自动部署方案探索

Gitlab CI/CD自动部署方案探索

Gitlab CI/CD自动部署方案探索

Gitlab CI/CD 之 Gitlab Runner Docker Executor 缓存问题