大佬们, gitlab-ci 问题,求解

baozi23 20天前 12

// gitlab-ci.yml
build-staging:
stage: build
script:
- docker build -t appName .
- docker login -u root -p password hub.com
- docker push appName
only:
- master

deploy-staging:
stage: deploy
script:
- docker run --rm -v /data/ci/agatha-staging:/app/tmp appName
- scp -r /data/ci/agatha-staging/* [email protected]:/etc/share/nginx/html/vueCli
- docker login -u root -p password hub.com
- docker rmi appName


// Dockerfile
COPY . /app
WORKDIR /app

RUN yarn install && npm run build
CMD cp -TR /app/dist /app/tmp
通过 gitlab-ci 和 docker 部署 vue 项目,这种情况下如何回退呢?
最新回复 (3)
  • mritd 15天前
    引用 2
    排版很乱,玩的跟骚 首先说明覆盖文件方式是没法回滚的,其次我觉得你在滥用 gitlab ci,runner 本身支持对接后端 docker,所以你的 build 部分应该是直接使用 nodejs 镜像,然后执行你的 yarn 命令,接着 cache 住生成的发布物,部署阶段如果有 k8s 推荐直接将发布物打入 nginx 镜像然后滚动,没有 k8s 自己写脚本在 LB 后面手动操作也比你这个 scp 强
  • 楼主 baozi23 15天前
    引用 3
    @mritd 先感谢大佬哈,小白没看懂,我这不用 dokcer 这也行,直接 build 然后把打包后的文件放到资源服务器上去。你说的 k8s 那快没理解是怎么操作,后面你说的自己写脚本,是我要在 build 后,根据版本号打个压缩包存储在服务器上吗?回退的时候直接在服务器上手动操作吗?
  • SjwNo1 15天前
    引用 4
    app 服务化,可以 rollback 到上个版本,你现在的设计貌似只能基于镜像版本来更新 /“回滚”
  • 游客
    5
返回