使用 Dockerrun.aws.json 通过 CLI 部署命令部署到 elasticbeanstalk
Deploy to elasticbeanstalk via CLI deploy command with Dockerrun.aws.json
我是 运行 一个 elasticbeanstalk 应用程序,具有多个环境。这个特定的应用程序正在托管 docker 个托管网络服务的容器。
要将新版本的应用程序上传并部署到其中一个环境,我可以通过 Web 客户端并单击 "Upload and Deploy",然后从文件选项中我 select 我的最新 Dockerrun.aws.json 文件,它引用了私有托管的容器的最新版本。上传和部署工作正常,没有问题。
为了让我自己和其他人更容易部署,我希望能够使用 CLI 上传和部署 Dockerrun.aws.json 文件。如果我在没有任何特殊配置的情况下使用 cli eb deploy
命令,则压缩整个应用程序并将其发送到主机的正常过程会发生并失败(无法推断它只需要读取 Dockerrun.aws.json文件)。
我发现了一个关于使用 .elasticbeanstalk/config.yml 文件控制上传内容的文档花絮。
使用此语法:
deploy:
artifact: Dockerrun.aws.json
上传文件,实际部署成功到第一批实例,然后总是部署失败到第二批实例。
失败错误是这样的:'container exited unexpectedly...'
谁能解释或提供 link 使用 CLI 部署单个 docker 容器应用程序的规范方法?
由于您要求 link,我提供了一个 link,我最初使用它来使用 elasticbeanstalk cli 成功测试和部署 docker。
请看看这是否对您也有帮助:https://fangpenlin.com/posts/2014/11/25/running-docker-with-aws-elastic-beanstalk/
事实证明,我在 config.yml 中列出的方法是正确的。我看到部署部分成功的原因是因为主机上以前的 运行 docker 容器没有被 EB 停止。
我认为发生的事情是 EB 正在发送类似
的内容
sudo docker kill --signal=SIGTERM $CONTAINER_ID
而不是更常见的 sudo docker stop $CONTAINER_ID
我所在的特定容器 运行 没有响应 SIGTERM,因此它只会坐在那里。当我使用 SIGKILL 在本地测试它时,它(显然)会正确停止,但仅 SIGTERM 不会停止它。
问题不是部署方法,而是 EB 生成的输出中的混乱和我的误解。
我是 运行 一个 elasticbeanstalk 应用程序,具有多个环境。这个特定的应用程序正在托管 docker 个托管网络服务的容器。
要将新版本的应用程序上传并部署到其中一个环境,我可以通过 Web 客户端并单击 "Upload and Deploy",然后从文件选项中我 select 我的最新 Dockerrun.aws.json 文件,它引用了私有托管的容器的最新版本。上传和部署工作正常,没有问题。
为了让我自己和其他人更容易部署,我希望能够使用 CLI 上传和部署 Dockerrun.aws.json 文件。如果我在没有任何特殊配置的情况下使用 cli eb deploy
命令,则压缩整个应用程序并将其发送到主机的正常过程会发生并失败(无法推断它只需要读取 Dockerrun.aws.json文件)。
我发现了一个关于使用 .elasticbeanstalk/config.yml 文件控制上传内容的文档花絮。
使用此语法:
deploy:
artifact: Dockerrun.aws.json
上传文件,实际部署成功到第一批实例,然后总是部署失败到第二批实例。
失败错误是这样的:'container exited unexpectedly...'
谁能解释或提供 link 使用 CLI 部署单个 docker 容器应用程序的规范方法?
由于您要求 link,我提供了一个 link,我最初使用它来使用 elasticbeanstalk cli 成功测试和部署 docker。
请看看这是否对您也有帮助:https://fangpenlin.com/posts/2014/11/25/running-docker-with-aws-elastic-beanstalk/
事实证明,我在 config.yml 中列出的方法是正确的。我看到部署部分成功的原因是因为主机上以前的 运行 docker 容器没有被 EB 停止。
我认为发生的事情是 EB 正在发送类似
的内容sudo docker kill --signal=SIGTERM $CONTAINER_ID
而不是更常见的 sudo docker stop $CONTAINER_ID
我所在的特定容器 运行 没有响应 SIGTERM,因此它只会坐在那里。当我使用 SIGKILL 在本地测试它时,它(显然)会正确停止,但仅 SIGTERM 不会停止它。
问题不是部署方法,而是 EB 生成的输出中的混乱和我的误解。