空であるので、ここで私がやろうとしているものです:にリンクマウントされたボリュームは
nginxのコンテナ - >コンテナがドッキングウィンドウ-コンを使用してプーマ
を実行しているRailsの、このソリューションは、素晴らしい作品。両方のコンテナを起動することができ、NGINXコンテナは、volumes_fromを使用してリンクされたコンテナ内のボリュームにアクセスできます。
まず、RailsのためのDockerfileの関連ビット:
ENV RAILS_ROOT /www/apps/myapp
RUN mkdir -p $RAILS_ROOT
WORKDIR $RAILS_ROOT
.... lots of files get put in their proper places ....
EXPOSE 3000
VOLUME [/www/apps/myapp/]
CMD puma -C config/puma.rb
nginxの設定ファイルはかなり基本的である、関連する部分はここにある:
ENV RAILS_ROOT /www/apps/myapp
# Set our working directory inside the image
WORKDIR $RAILS_ROOT
EXPOSE 80
EXPOSE 443
繰り返しますが、このすべては、ドッキングウィンドウ・コンで素晴らしい作品。しかし、ECSで、私は、次のタスク定義を使用しようとしている:予想通り
{
"family": "myapp",
"containerDefinitions": [
{
"name": "web",
"image": "%REPOSITORY_URI%:nginx-staging",
"cpu": 512,
"memory": 512,
"portMappings": [
{
"containerPort": 80,
"protocol": "tcp"
},
{
"containerPort": 443,
"protocol": "tcp"
}
],
"links": [
"myapp"
],
"volumesFrom": [
{
"sourceContainer": "myapp",
"readOnly": false
}
],
"essential": true,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "awslogs-myapp-staging",
"awslogs-region": "us-west-2",
"awslogs-stream-prefix": "awslogs-myapp-nginx"
}
}
},
{
"image": "%REPOSITORY_URI%:v_%BUILD_NUMBER%",
"name": "myapp",
"cpu": 2048,
"memory": 2056,
"essential": true,
...bunch of environment variables, etc.
}
タスクは、ECSで開始し、myappのコンテナは完璧に見えます。しかし、ときに私は私が/ WWW /アプリケーション/ myappのに上陸
docker exec -it <container> bash
でEC2インスタンスのホスト上でnginxのコンテナをチェックしますが、ディレクトリは空です。私はドライブをマウントし、いくつかの他のことをやろうとしていると私はここで損失している...誰も私のnginxのコンテナで使用できるようにリンクされたコンテナからファイルを取得する方法に関するアイデアはありますか?
うん、 'VOLUME'ディレクティブは、実際にJSON配列です。 ;)(または引用符のない文字列) –