使用 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 部署后在容器中运行命令的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pallet 向 Elastic Beanstalk 部署战争
使用 MongoDB 部署 Elastic Beanstalk
使用 MongoDB 部署 Elastic Beanstalk