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

有什么开源项目可以辅助我,每次 push 代码后,在服务器上自动更新 swarm 容器?

  •  
  •   find456789 · 2019-08-14 15:50:16 +08:00 · 2182 次点击
    这是一个创建于 1920 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟之前用的阿里云的 docker swarm 服务,

    他们的 swarm 服务,可以绑定 git 仓库,当我推送代码到 git 代码库,他就会自动拉取新代码,并构建一个容器,然后部署到机器上

    但是现在他们要下线这个服务了

    我只有一台 ecs,暂时也不打算购买阿里云的 k8s

    所以我现在的可选方案是:

    1.使用阿里云的 k8s (必须要购买阿里云的负载均衡和 ingress,决定放弃这个方案)

    2.自己在服务器上部署 docker swarm,每次代码更新后,手动登陆服务器 pull 代码,并更新容器

    最终我选择了方案 2, 所以我想来问问, 对于方案 2,有没有什么开源的项目,能加速 /自动化 这个流程 ?

    谢谢大家

    12 条回复    2019-08-15 08:07:53 +08:00
    kkkkkrua
        1
    kkkkkrua  
       2019-08-14 15:58:04 +08:00   ❤️ 1
    在服务器开个地址,然后在项目上面绑定 webhooks 不可以吗
    baojiwei
        2
    baojiwei  
       2019-08-14 15:59:50 +08:00 via Android   ❤️ 2
    gitlab cicd
    find456789
        3
    find456789  
    OP
       2019-08-14 16:00:19 +08:00
    @kkkkkrua

    你好,我没有明白你的意思, 能否给个关键词,我去研究一下 ,谢谢
    find456789
        4
    find456789  
    OP
       2019-08-14 16:02:10 +08:00
    @baojiwei

    谢谢 我研究一下
    kkkkkrua
        5
    kkkkkrua  
       2019-08-14 16:02:43 +08:00   ❤️ 1
    @find456789 #3
    按照你 2 所说,你自己服务器应该有个 ci/cd 工具把。
    然后在 github 仓库上新建个 webhooks,然后访问到你的 ci/cd 工具,自动打包运行你的项目
    关键词 gitlab webhooks
    ww2000e
        6
    ww2000e  
       2019-08-14 16:04:52 +08:00   ❤️ 1
    drone?
    find456789
        7
    find456789  
    OP
       2019-08-14 16:09:40 +08:00
    @ww2000e
    @kkkkkrua

    谢谢,我研究一下
    NizumaEiji
        8
    NizumaEiji  
       2019-08-14 16:09:58 +08:00   ❤️ 1
    git 钩子?
    SilencerL
        9
    SilencerL  
       2019-08-14 16:10:12 +08:00   ❤️ 1
    Jenkins
    docker-compose
    swarm
    anubu
        10
    anubu  
       2019-08-14 16:45:12 +08:00   ❤️ 1
    看上去楼主没有配套的 CI/CD 工具,如果项目比较少的话,搭一套 Jenkins 有些浪费。可以试着简单的解决一下。
    基本上要考虑两个问题:
    1. 自动构建,大部分公共 registry 都支持 Webhook 自动构建的,了解一下就可以解决这个问题。
    2. 自动部署,可以使用一些开源项目,如 watchtower、ouroboros,自动更新镜像。
    thet
        11
    thet  
       2019-08-14 17:10:05 +08:00   ❤️ 1
    基本上如 #10 说的,你需要有配套的 CI/CD 工具。如果使用 Jenkins 构建的话,可以看一下我之前写的插件,构建完成之后可以自动部署到 docker swarm 集群。https://github.com/kaoyaya/kyy-container-deploy-plugin
    liuzhaowei55
        12
    liuzhaowei55  
       2019-08-15 08:07:53 +08:00 via Android
    portainer.io 管理 swarm 环境即可,service 支持 webhook 更新功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2796 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:09 · PVG 21:09 · LAX 05:09 · JFK 08:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.