V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
baozi23
V2EX  ›  问与答

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

  •  
  •   baozi23 · 2021-04-01 20:41:33 +08:00 · 922 次点击
    这是一个创建于 1366 天前的主题,其中的信息可能已经有所发展或是发生改变。
    // 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/* root@ip:/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 条回复    2021-04-02 19:48:52 +08:00
    mritd
        1
    mritd  
       2021-04-02 09:58:35 +08:00 via iPhone
    排版很乱,玩的跟骚 首先说明覆盖文件方式是没法回滚的,其次我觉得你在滥用 gitlab ci,runner 本身支持对接后端 docker,所以你的 build 部分应该是直接使用 nodejs 镜像,然后执行你的 yarn 命令,接着 cache 住生成的发布物,部署阶段如果有 k8s 推荐直接将发布物打入 nginx 镜像然后滚动,没有 k8s 自己写脚本在 LB 后面手动操作也比你这个 scp 强
    baozi23
        2
    baozi23  
    OP
       2021-04-02 10:24:28 +08:00
    @mritd 先感谢大佬哈,小白没看懂,我这不用 dokcer 这也行,直接 build 然后把打包后的文件放到资源服务器上去。你说的 k8s 那快没理解是怎么操作,后面你说的自己写脚本,是我要在 build 后,根据版本号打个压缩包存储在服务器上吗?回退的时候直接在服务器上手动操作吗?
    SjwNo1
        3
    SjwNo1  
       2021-04-02 19:48:52 +08:00 via iPhone
    app 服务化,可以 rollback 到上个版本,你现在的设计貌似只能基于镜像版本来更新 /“回滚”
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 12:16 · PVG 20:16 · LAX 04:16 · JFK 07:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.