使用volume-from挂载的音量为空

所以这就是我想要做的:

链接到Nginx容器 – >运行Puma的Rails容器

使用docker-compose,这个解决scheme效果很好。 我可以启动这两个容器,NGINX容器可以使用volumes_from访问链接容器中的卷。

首先,Dockerfile for Rails的相关位:

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的configuration是非常基本的,相关的部分在这里:

 ENV RAILS_ROOT /www/apps/myapp # Set our working directory inside the image WORKDIR $RAILS_ROOT EXPOSE 80 EXPOSE 443 

再一次,这一切都在docker构成伟大。 但是,在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容器看起来很完美。 但是,当我检查EC2实例主机上的nginx容器

 docker exec -it <container> bash 

我登陆/ www / apps / myapp,但目录是空的。 我试图挂载驱动器,做了其他的事情,我在这里输了…任何人有任何想法,如何从链接的容器中的文件可以在我的nginx容器中使用?

当然,我发布后,我find了解决办法。 所以没有人会感到这种痛苦,这里是:

 VOLUME [/www/apps/myapp/] VOLUME ["/www/apps/myapp/"]