我找不到有关启动顺序的任何文档(可能我只是没有在正确的地方寻找)。
在 Docker 端,Dockerfile 中的所有内容都会一起执行,然后运行 CMD 条目来实际启动服务器。
我想知道的是 ebextensions 中的命令何时相对于此运行?
它是在任何 Dockerfile 内容发生之前吗?是在大部分 Dockerfile 内容之后但在 CMD 之前还是在全部之后?
答案1
这个页面很有用:在 Linux 服务器上定制软件 | AWS Elastic Beanstalk
在“命令”下,它显示“在设置应用程序和 Web 服务器并提取应用程序版本文件之前运行”
在“容器命令”下,它说“在应用程序和 Web 服务器设置完毕并提取应用程序版本档案之后,但在应用程序版本部署之前运行”。
通过实验我认为它是这样的:
- 运行 ebextensions 命令
- 将 Docker 映像构建为“aws_beanstalk/staging-app”
- 运行 ebextensions 容器命令
- 将图像重命名为 aws_beanstalk/current-app
- 启动镜像
我可以从容器命令中成功调用 staging-app 镜像上的运行,这正是我想要的。