【发布时间】:2017-03-22 17:19:57
【问题描述】:
在我的应用程序中,我有一个 nginx 容器,我想用它来提供静态 webapp 文件。这些 webapp 文件存在于一个名为“webapp”的单独容器中。
将 webapp 容器挂载到 nginx 容器中的推荐方式是什么?我目前的做法是这样的:
version: '2'
services:
nginx:
volumes_from:
- webapp
webapp:
image: someimageurl
在 webapp 的 Dockerfile 中,我在 nginx 容器服务的同一路径公开了一个卷。
这很好用,但问题是在 docker-compose v3 中,“volumes_from”被删除并替换为命名卷。所以我的新配置看起来像:
version: '3'
volumes:
static-webapp:
services:
nginx:
volumes:
- static-webapp:/opt/webapp
webapp:
image: someimageurl
volumes:
- static-webapp:/opt/webapp
这样做的问题是 webapp 容器中的数据只会被复制到“static-webapp”卷中一次。更改内容并重新运行docker-compose up后,卷中的内容不变。我知道这是设计使然,不会覆盖持久数据。
我的问题是:我应该如何使用 docker-compose v3 来做到这一点?我本质上想要一个可以挂载到多个容器中的未命名卷。
我想到的解决方案是:
1.) 在 nginx 容器中捆绑静态内容。我不喜欢这样,因为那样我就无法将要求分开。
2.) 我可以在每次 docker-compose 运行后手动删除“static-webapp”卷。这似乎也不理想。
【问题讨论】:
-
你刚才说 docker 卷复制内容,我认为这是错误的,它直接引用它们。
标签: docker docker-compose