私が達成しようとしていること: CMS を含む docker コンテナーがあり、その CMS には「assets」という名前のフォルダーがあります。アセット フォルダーを他のコンテナーで使用できるようにする必要があります。また、コンテナー/イメージが削除されたときにデータが削除されないようにする必要があります。
解決方法:マルチコンテナー環境でのボリュームのマウントに関するすべての記事を読み、多くの例を見て、次の dockerrun.aws.json ファイルを思いつきました。
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "assets",
"host": {
"sourcePath": "/var/app/current/cms"
}
}
],
"containerDefinitions": [
{
//...
"mountPoints": [
{
"sourceVolume": "assets",
"containerPath": "/var/www/assets",
"readOnly": false
}
]
}
]
}
これを Beanstalk 経由でアップロードすると、すべてがビルドされ、すべてのボックスが緑色になりますが、EC2 インスタンスにログインして ls /var/app/current のディレクトリが空になります。/var/app/current/cms/assets がそこにあることを期待していました...
ビルドファイルにコアコンセプトまたはフラグが欠けていると思います。私がやろうとしていることを達成するための方向性またはより良い方法をいただければ幸いです。