Swarm 集群  DevOps  基于容器 HUB 的持续交付


介绍如何通过添加触发器和设置 Webhook 实现自动重新部署应用。


背景信息


假设您已经有一个部署在阿里云容器服务上的 nodejs 应用。该应用代码托管在 GitHub 中,镜像仓库使用的是阿里云 Docker Hub,镜像仓库设置了代码变更时自动构建镜像的构建设置。
确认更新。


操作步骤

  1. Docker Hub 中的镜像如下所示。



2. 初始的编排模板如下所示。
nodejs-demo:
image: 'registry.cn-hangzhou.aliyuncs.com/qinyujia-test/nodejs-demo'
expose:
     - '22'
     - '3000'
restart: always
labels:
     aliyun.routing.port_3000: nodejs-demo
3.应用如下所示。




4. 为 nodejs 应用创建重新部署类型的触发器。


5. 在 Docker Hub 中添加一条 Webhook 记录,将上一步创建的触发器链接填写到 Webhook URL 中。


6. 确认更新。
通过查看应用的事件来确认更新。


通过 Webhook 的访问历史来确认更新。



展开
收起
青蛙跳 2018-08-31 21:28:43 1407 分享 版权
阿里云 AI 助理回答

要通过添加触发器和设置Webhook实现自动重新部署应用,您可以遵循以下步骤操作:

1. 创建应用触发器

  • 前提条件

    • 已创建ACK集群。
    • 应用已部署在ACK集群中,例如您已有的Node.js应用。
  • 操作步骤

    1. 登录容器服务管理控制台,在左侧导航栏选择集群列表
    2. 选择目标集群,然后导航至工作负载 > 无状态,找到您的Node.js应用。
    3. 进入应用详情页面,点击触发器页签,再点击创建触发器
    4. 在弹出的对话框中,选择触发器行为重新部署,完成配置后点击确定。创建完毕后,记录下触发器链接。

2. 设置Docker Hub Webhook

  • 前提条件

    • 您的应用镜像托管于阿里云Docker Hub,并已设置代码变更时自动构建镜像。
  • 操作步骤

    1. 登录阿里云Docker Hub控制台,找到您的仓库设置。
    2. 寻找Webhooks或回调设置区域,点击添加Webhook
    3. 在Webhook配置中,将URL设置为上一步骤中获取的触发器链接。
    4. 确保触发事件设置正确,通常应选择镜像构建成功后的事件。
    5. 保存Webhook配置。

3. 验证与监控

  • 验证更新
    • 触发一次代码提交到GitHub,这将导致Docker Hub自动构建新的镜像。
    • 监视Docker Hub的Webhook访问历史,确认Webhook被成功调用。
    • 回到ACK控制台,查看应用的事件记录,确认应用因触发器执行而重新部署。
    • 观察应用的Pod变化,新版本应用部署成功后,旧Pod会被逐步替换。

注意事项

  • 安全设置:确保触发器链接保持私密,避免未授权访问。
  • 网络策略:如果存在网络限制,请确保Docker Hub能够访问到ACK集群的API服务器。
  • 错误处理:定期检查Webhook调用日志,及时发现并解决调用失败的问题。

通过上述步骤,您即可实现当GitHub代码更新,Docker Hub自动构建新镜像后,通过Webhook触发ACK集群中的应用自动重新部署,从而达到持续集成和持续部署(CI/CD)的目的。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

国内唯一 Forrester 公共云容器平台领导者象限。

还有其他疑问?
咨询AI助理