我慢してください。 Dockerはかなり新しいです。
CodeDeploy を使用してDockerコンテナ(デタッチ)をAWSEC2レジストリにデプロイしています。デプロイ時に、いくつかの環境変数などを設定した後、次のコマンドが実行されます。
exec docker run -d ${PORTS} -v cache-${CACHE_VOLUME} --env-file $(dirname $0)/docker.env --tty "${IMAGE}:${TAG}"
コンテナは、EC2 ContainerServiceに配置されタグ付けされたイメージを実行します。今のところ問題ありません。
これはPHPアプリケーション(具体的にはSymfony2アプリケーション)であるため、展開時にデータベースの移行を実行するには、通常、次のコマンドを発行する必要があります。
php app/console doctrine:migrations:migrate --no-interaction
さて、コンテナを実行したまま「docker run ...」中にこのコマンドを実行するものはありますか、それともこのコマンド専用に別のコンテナを実行する必要がありますか?
どうもありがとう!
これを検索する次の人のためにここに置いておくだけです... ;-)
Doctrineの最新バージョンを使用する場合、これには非常に便利なパラメーターがあります。
php bin/console doctrine:migrations:migrate --no-interaction --allow-no-migration
「allow-no-migration」パラメーターは、doctrine何もすることがない場合、例外をスローしないように指示します。
私は次のようにします:
docker-compose exec [containerID] ./app/console migrations:migrate --no-interaction