我刚开始使用 docker,到目前为止非常热情!目前,我正在尝试构建一个非常基本且可扩展的文件,该文件仅服务于基本的静态网站。我认为这不应该那么困难,但我有以下问题:
以下docker-compose.yml
文件仍然显示默认的 nginx index.html
文件,我希望这会被我的项目文件夹 ./code
覆盖.我可以覆盖/usr/share/nginx/html
中的所有文件吗?无需添加单独的 Dockerfile
?我试图尽可能减少这种配置。
version: '2'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./code:/usr/share/nginx/html
// Whenever needed php/python/dababase services can be added here
最佳答案
所以我通过添加 :z
让它工作了我的卷命令上的标签。所以我代码的最后一行变成了:- ./code:/usr/share/nginx/html:z
根据docker documentation标签 :z 和 :Z 更改容器上下文中的标签。这些后缀告诉 Docker 重新标记共享卷上的文件对象。 :z
选项告诉 Docker 两个容器共享卷内容。因此,Docker 使用共享内容标签来标记内容。共享卷标允许所有容器读/写内容。 :Z
选项告诉 Docker 使用私有(private)非共享标签标记内容。只有当前容器可以使用私有(private)卷。
关于nginx - 在 Docker compose 配置中覆盖 nginx html 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41346072/