使用 Elastic Beanstalk 部署后在容器中运行命令

Posted

技术标签:

【中文标题】使用 Elastic Beanstalk 部署后在容器中运行命令【英文标题】:Run commands in container after deploy with Elastic Beanstalk 【发布时间】:2018-08-24 04:40:31 【问题描述】:

场景: 具有多 Docker 平台的 Elastic Beanstalk 环境。 nginx 容器和 php7.1 容器 PHP/Symfony 应用程序

问题: 部署后我需要运行 Doctrine cli 命令来更新数据库。我想出了如何通过以下代码动态而不是自动做到这一点。

docker exec $(docker ps | grep php-fpm | awk 'print $1') php ./bin/console doctrine:schema:update --force 

我使用 CodePipeline/CodeBuild 进行部署

【问题讨论】:

【参考方案1】:

在 Dockerfile 的末尾

CMD ["/start.sh"]

在你的 start.sh 文件中

#!/bin/sh
set -xe

php bin/console doctrine:schema:update --force

【讨论】:

以上是关于使用 Elastic Beanstalk 部署后在容器中运行命令的主要内容,如果未能解决你的问题,请参考以下文章

使用 Elastic Beanstalk 部署微服务

使用 Pallet 向 Elastic Beanstalk 部署战争

使用 MongoDB 部署 Elastic Beanstalk

使用 MongoDB 部署 Elastic Beanstalk

如何使用 TFS 2017 部署到 Elastic Beanstalk?

使用 EbCommands 部署 Laravel Aws Elastic-Beanstalk