将 Docker 部署到 Elastic Beanstalk 的最佳策略

将 Docker 部署到 Elastic Beanstalk 的最佳策略

我不确定这里是不是提出这个问题的最佳地点。但几天来我一直在努力寻找一个好的 Elastic Beanstalk 部署流程,我想知道在这方面更有经验的人的意见。

首先,我的计划是拥有一个通用的 Docker 映像,并将我的代码卷绑定到该映像,然后在运行容器时进行所有必要的安装。

问题是安装所有东西需要的时间太长,EB 会因超时而中止部署。我尝试增加超时时间,但没有成功(不知道为什么,在本地运行容器并不需要那么长时间)

所以,我的下一个想法是让图像中的所有内容都预先安装好。但为此我必须先构建它并推送到注册表。

好的,所以我决定使用 ECR,因为这样就不会有问题了。

我已经创建了镜像并推送到注册表

然后,我创建了一个 Dockerrun.aws.json,并将其指向我的存储库。

这样做之后,我仍然收到与之前相同的超时错误。

几个小时后,我意识到 AWS 一直在构建 Dockerfile,甚至在目录中有 Dockerrun。

我不明白他们为什么这样做,但是为了解决这个问题,我不得不移动我的 Dockerfile 以便不被 git 跟踪,这真的很烦人。

然后,好了,它工作了,但这是一个糟糕的工作流程。每次我在 Dockerfile 上更新某些内容时,我都必须再次运行所有内容,推送到 ECR。只有这样我才能部署。

如果其他人想要部署代码,我必须手动向他们发送 Dockerfile,因为我无法将其放在 git 上,否则 Elastic Beanstalk 会尝试构建它。

我确信有更简单的工作流程。有人能在这方面指出更好的方向吗?

相关内容