[英]Mounted volume using volume-from is empty
因此,這就是我想要做的:
Nginx容器鏈接到->運行Puma的Rails容器
使用docker-compose,此解決方案效果很好。 我能夠啟動兩個容器,並且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的配置非常基礎,相關部分在這里:
ENV RAILS_ROOT /www/apps/myapp
# Set our working directory inside the image
WORKDIR $RAILS_ROOT
EXPOSE 80
EXPOSE 443
同樣,這一切在docker-compose中都很好用。 但是,在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容器中可用有任何想法?
當然,在發布此消息后,我立即找到了解決方案。 因此,沒有其他人會感到這種痛苦,這里是:
VOLUME [/www/apps/myapp/]
VOLUME ["/www/apps/myapp/"]
嘆
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.