gpt4 book ai didi

amazon-web-services - elastic-beanstalk docker应用在部署时未更新

转载 作者:IT老高 更新时间:2023-10-28 21:22:55 24 4
gpt4 key购买 nike

我在 git 存储库中有一个 Dockerfile/elastic-beanstalk 应用程序,它从 s3 并启动它。这在我第一次部署时效果很好; Docker 容器构建完成,应用程序启动并正常运行。问题出现在我对应用程序进行更改后,将 tarball 重新上传到 s3 并运行 eb deploy

$ eb deploy
INFO: Environment update is starting.
INFO: Deploying new version to instance(s).
INFO: Successfully built aws_beanstalk/staging-app
INFO: Successfully pulled yadayada/blahblah:latest
INFO: Docker container 06608fa37b2c is running aws_beanstalk/current-app.
INFO: New application version was deployed to running EC2 instances.
INFO: Environment update completed successfully.

但该应用尚未在 *.elasticbeanstalk.com 上更新。我猜由于 Dockerfile 没有改变,docker 不会重建容器(并拉取最新的应用程序压缩包)。我希望能够强制重建,但 eb 工具似乎没有该选项。我可以从网站控制台强制重建,但显然这不利于自动化。我将每次更改提交到 git 并且我希望 eb 会使用它来知道重建是必要的,但这似乎没有任何区别。我是否以错误的方式使用 docker/elastic-beanstalk?理想情况下,我想提交 git 并让 beanstalk 自动重新安装应用程序。

最佳答案

将 Docker 用于 CI 的问题在于,它不像脚本那样运行,除非 Dockerfile 发生更改,否则它不会重新构建。所以你必须把每次都需要重建的东西放在启动包装脚本中,而不是放在 Dockerfile 中。因此,我将下载应用程序 tarball 的部分移动到 Dockerfile 安装到容器的脚本中。然后当容器启动时,tarball 会被下载并解压,然后才能启动真正的应用程序。这有效,并且重新部署现在按预期工作。调试过程有点麻烦,并导致我认为将 Docker 与 EB 用于 CI 有点像 hack。

关于amazon-web-services - elastic-beanstalk docker应用在部署时未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27051683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com