在 AWS Elastic Beanstalk 上,使用 Docker,ebextensions 何时相对于 Docker RUN 和 CMD 条目运行?

在 AWS Elastic Beanstalk 上,使用 Docker,ebextensions 何时相对于 Docker RUN 和 CMD 条目运行?

我找不到有关启动顺序的任何文档(可能我只是没有在正确的地方寻找)。

在 Docker 端,Dockerfile 中的所有内容都会一起执行,然后运行 ​​CMD 条目来实际启动服务器。

我想知道的是 ebextensions 中的命令何时相对于此运行?

它是在任何 Dockerfile 内容发生之前吗?是在大部分 Dockerfile 内容之后但在 CMD 之前还是在全部之后?

答案1

这个页面很有用:在 Linux 服务器上定制软件 | AWS Elastic Beanstalk

在“命令”下,它显示“在设置应用程序和 Web 服务器并提取应用程序版本文件之前运行”

在“容器命令”下,它说“在应用程序和 Web 服务器设置完毕并提取应用程序版本档案之后,但在应用程序版本部署之前运行”。

通过实验我认为它是这样的:

  1. 运行 ebextensions 命令
  2. 将 Docker 映像构建为“aws_beanstalk/staging-app”
  3. 运行 ebextensions 容器命令
  4. 将图像重命名为 aws_beanstalk/current-app
  5. 启动镜像

我可以从容器命令中成功调用 staging-app 镜像上的运行,这正是我想要的。

相关内容