amazon-web-services - AWS Beanstalk docker 镜像自动更新不起作用

标签 amazon-web-services deployment docker amazon-elastic-beanstalk

我有一个 node.js 应用程序打包在公共(public)存储库中托管的 docker 镜像中。

我已成功将该镜像部署到 AWS Beanstalk docker 应用程序中。 问题是我希望 Beanstalk 应用程序在我更新公共(public)存储库中的图像时自动更新,如以下配置所示。

Dockerrun.aws.json:

{
  "AWSEBDockerrunVersion": "1",
  "Image": {
    "Name": "peveuve/dynamio-payment-service",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": "8000"
    }
  ],
  "Logging": "/var/log/dynamio"
}

Dockerfile 非常简单:

FROM node:4.2.1-onbuild
# Environment variables
ENV NODE_ENV test
ENV PORT 8000
# expose application port outside
EXPOSE $PORT

亚马逊文档对此非常清楚:

Optionally include the Update key. The default value is "true" and instructs Elastic Beanstalk to check the repository, pull any updates to the image, and overwrite any cached images.

但我必须通过上传新版本的 Dockerrun.aws.json 描述符来手动更新 Beanstalk 应用程序。我错过了什么?它应该这样工作吗?

最佳答案

文档应该更清楚。他们说的是 update=true:

EBS 在应用程序首次启动时会先执行 docker pull,然后再执行 docker run。它不会持续轮询 docker hub。

相比之下,在没有先执行 docker pull 的情况下发出 docker run 将始终使用该机器的本地存储版本,这可能并不总是最新的。

为了实现您想要的,您需要设置 webhook on Docker Hub ,它调用您控制的应用程序,重建您的 ELB 应用程序。

关于amazon-web-services - AWS Beanstalk docker 镜像自动更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34241428/

相关文章:

python - 如何使用 Python 在 AWS Lambda 上运行 SQLAlchemy

amazon-web-services - 在 Amazon S3 预签名 URL 上传后获取 AWS lambda 响应

amazon-web-services - SSL 不适用于 AWS 上的 Route 53 域

c# - 如何将同一个应用程序部署到多个服务器

amazon-web-services - 蓝绿部署与滚动部署?

docker - Emscripten “incoming”安装异常大

java - AWS EMR Step 失败,因为它创建的作业失败

django - mod_deflate与Django GZipMiddleware,哪个用于部署?

mysql - Docker Compose Sql DB 图像连接错误

docker - GCP : how to access cloud storage bucket from a VM instance