nginx - 在 Docker compose 配置中覆盖 nginx html 目录

标签 nginx docker docker-compose

我刚开始使用 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/

相关文章:

linux - Google Cloud Run 和系统功能

docker - 如何在 docker 容器中使用 sudo?

git - 如何将存储库维护成单个存储库

ubuntu - Nginx 不显示 ServerBlocks

nginx - 如何将 nginx 与 Go 一起用于子域?

Nginx 检查 Cloudflare 是否转发或直接 IP 并相应限制

使用 Google Cloud Kubernetes TCP 负载均衡器的 Nginx 状态代码 499

postgresql - docker-entrypoint-initdb.d 中的 Docker PostgreSQL 初始化脚本无法导入文件

docker - 内部和外部网络与docker-compose吗?

docker - 如何调出具有主机名和IP地址的容器,以便它们可以串行运行?