当前位置: 首页 > 面试题库 >

AWS Beanstalk Docker映像自动更新不起作用

滕令雪
2023-03-14
问题内容

我有一个打包在公共存储库中的docker映像中的node.js应用程序。

我已将该映像成功部署在AWS Beanstalk泊坞应用中。问题是,我期望在更新公共存储库中的映像时自动更新Beanstalk应用程序,因为以下配置建议。

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

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

(可选)包括更新密钥。默认值为“ true”,它指示Elastic Beanstalk检查存储库,提取映像的所有更新以及覆盖所有缓存的映像。

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


问题答案:

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

EBS会做docker pull它做了之前docker run当应用程序第一次启动。它不会持续轮询docker hub。

相比之下,docker run不先发行a发行a docker pull将始终使用该计算机的本地存储版本,该版本可能并不总是最新的。

为了实现所需的功能,您需要在Docker Hub上设置一个Webhook,该Webhook调用您控制的应用程序,然后重新构建ELB应用程序。



 类似资料:
  • 问题内容: 假设我有一个基于的琐碎容器。现在有一个安全更新,并在docker repo中进行了更新。 我怎么知道我的本地映像及其容器在后面运行? 是否有一些最佳实践来自动更新本地映像和容器以跟随docker repo更新,实际上,这会给您带来与在常规ubuntu机器上运行无人值守升级一样的好处。 问题答案: 一种方法是通过CI / CD系统来驱动它。构建父映像后,请使用该父映像扫描git repo

  • 假设我有一个基于< code>ubuntu:latest的小容器。现在有一个安全更新,docker repo中更新了< code>ubuntu:latest。 > 我怎么知道我的本地映像及其容器在后面运行? 是否有一些最佳实践可以自动更新本地映像和容器以遵循 docker 存储库更新,这在实践中将为您提供在传统 ubuntu 计算机上运行无人值守升级的相同细节

  • 问题内容: 我有一种情况,在使用网络应用程序时,我需要显示动态图像。我想显示图像文件名存储在变量中的位置。该变量是一个属性,它返回一个存储变量,该变量在上异步填充。 但是,当我刚这样做时,它会完美地工作: 正确的方法应该是什么? 问题答案: 我通过以下代码来工作 并在HTML中: 但是不确定为什么我以前的方法行不通。

  • 我有一个曾经正常工作的AndroidAVD映像。我必须更新我的macOS Big Sierra,更新后AVD映像无法启动。我得到的错误是:avd的模拟器进程被杀死。 我尝试了现在冷启动选项,但也出现了同样的错误。 有没有一种方法可以运行此AVD图像而不丢失我在其上的数据?

  • 我有一个简单的存储过程,在我创建的表上执行。当我使用硬编码参数单独执行update语句时,它可以工作,但过程在执行时不会更新。它返回一个“命令已成功完成”,但不影响任何行。我检查了数据,数据也没有变化。

  • 问题内容: eclipse的自动完成功能现在无法使用,我搜索了几个小时,但找不到解决方案。我已经使用很长时间了,所以即使我已经安装了秋千,打开它之后的第一件事就是要安装SWT和Windows Builder。我的意思是,这可能是由于swt和swing引起的一些冲突(我读到一些有关冲突的信息,但如果可能的话,我不会)。 奇怪的是,当我按ctrl + space时它什么都没有显示,但是当我进入“编辑”