私にご負担ください。 Dockerの新機能DockerコンテナをAWSにデプロイするときにデータベース移行コマンドを実行
私はCodeDeployを使用してAWS EC2レジストリにDockerコンテナ(デタッチ)を展開しています。デプロイ時に、環境変数などを設定した後、次のコマンドが実行されます。コンテナは、EC2コンテナサービスに配置され、タグ付けされたイメージを実行します。これまでのところ問題はありません。
これは私が正常に展開上のデータベースの移行を実行するには、次のコマンドを発行する必要がありますPHPアプリケーション(特にSymfony2のアプリケーション)であるので:
今php app/console doctrine:migrations:migrate --no-interaction
、中にこのコマンドを実行するために、任意の」がありますdocker run ... "を実行するか、このコマンド用に別のコンテナを実行する必要がありますか?
多くの感謝!
しかし、どのようにデプロイメントスクリプトは[containerId]を知ることができますか?または手動で実行していますか? – frigg
私はそれを手動で行います。しかし、私はあなたの展開スクリプトで "docker ps"を実行して、あなたに適用するcontainerIdをgrepすることができると思います... –
これは、2つの可能なソリューションを組み合わせています。 'docker-compose run [service]'は新しいドッカーコンテナを回転させます。また、 'docker ps'を使って実行中のPHPコンテナのコンテナIDを調べ、' docker exec [containerID] [migrationCommand] 'を使って、新しいコンテナをスピンアップするのではなく、実行中のコンテナ内でコマンドを実行することもできます。 – eawenden