gpt4 book ai didi

node.js - 如何在 travis 中构建我的 docker (nodejs) 容器并在生产环境中运行

转载 作者:搜寻专家 更新时间:2023-10-31 23:59:34 25 4
gpt4 key购买 nike

我目前的设置:

  • 当更改的代码推送到 Github 时,Travis 触发构建。
  • Travis 使用 Dockerfile 构建容器并推送到 dockerhub。

我需要实现的目标:

  • 从 docker hub 生产环境中拉取容器。
  • 运行容器并公开所需的端口。

方法:

  • SSH 进入生产环境并拉取容器并运行(使用 travis.yml)。

我想在 Travis 构建成功后立即在生产环境中拉取并运行容器。 SSH 似乎是黑客攻击,我需要最佳实践来实现这一点。

最佳答案

你有几个选择:

1 - 你实际上想在 DockerHub 构建完成后拉取镜像,而不是在 travis 完成后拉取镜像,在这种情况下你可以使用 DockerHub webhooks 调用某种服务(它可以归结为任何类型的脚本)在您的服务器上,这将拉取图像并运行它。

来自 https://docs.docker.com/docker-hub/repos/#/webhooks :

You can use a Hub repository webhook to notify people, services, and other applications after a new image is pushed to your repository (this also happens for Automated builds). For example, you can trigger an automated test or deployment to happen as soon as the image is available.

2 - 使用类似 Ansible 的东西来避免自己通过 SSH 进入机器。您编写一次 Ansible 角色,它将在您的 Travis 构建中运行。有一个非常好的 Ansible docker 模块,所以你会很好。

3 - 使用适应性更强的基础设施,如 Amzon ECS,它基本上是一个或一组 EC2 实例,为您运行和管理 Docker 容器和图像。如果您知道如何旋转 EC2 实例,那么制作一个简单的 ECS 实例将完全不是问题。

希望对您有所帮助。

关于node.js - 如何在 travis 中构建我的 docker (nodejs) 容器并在生产环境中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40280924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com