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

在Docker compose配置中覆盖nginx html目录,nginx,docker,docker-compose,Nginx,Docker,Docker Compose,我刚开始与docker合作,到目前为止我非常热情!目前,我正在尝试构建一个非常基本且可扩展的文件,它只为基本的静态网站服务。我想这应该不会太难,但我有以下问题: 下面的docker compose.yml文件仍然显示默认的nginxindex.html文件,我希望这会被我的项目文件夹/code覆盖。我是否可以覆盖/usr/share/nginx/html中的所有文件,而不添加单独的Dockerfile?我正在尽可能地保持这种配置 version: '2' services: web:

我刚开始与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

因此,我在volumes命令中添加了
:z
标签,使其正常工作。因此,我代码中的最后一行变成:

-./code:/usr/share/nginx/html:z


根据标签:z和:z在容器上下文中更改标签。这些后缀告诉Docker重新标记共享卷上的文件对象。
:z
选项告诉Docker两个容器共享卷内容。因此,Docker使用共享内容标签来标记内容。共享卷标允许所有容器读取/写入内容。
:Z
选项告诉Docker使用私有非共享标签标记内容。只有当前容器才能使用专用卷。

因此,我通过在我的volumes命令中添加
:z
标签使其正常工作。因此,我代码中的最后一行变成:

-./code:/usr/share/nginx/html:z


根据标签:z和:z在容器上下文中更改标签。这些后缀告诉Docker重新标记共享卷上的文件对象。
:z
选项告诉Docker两个容器共享卷内容。因此,Docker使用共享内容标签来标记内容。共享卷标允许所有容器读取/写入内容。
:Z
选项告诉Docker使用私有非共享标签标记内容。只有当前容器才能使用专用卷。

我刚刚按原样测试了您的撰写文件,它工作正常。我在./code目录中创建了一个简单的index.html文件。停止并启动Docker服务,看看这是否解决了问题;不幸的是,我也遇到过类似的问题,停下来就可以解决。嗯,奇怪的是,我只看到了“欢迎使用nginx!”html文件。在重新启动我的服务之后,我唯一能想到的就是你的./code文件与你的docker-compose.yml文件不在同一级别。尝试放置一个完整路径,而不是相对的
/code
,看看这是否解决了问题。我刚刚测试了您的compose文件,它按预期工作。我在./code目录中创建了一个简单的index.html文件。停止并启动Docker服务,看看这是否解决了问题;不幸的是,我也遇到过类似的问题,停下来就可以解决。嗯,奇怪的是,我只看到了“欢迎使用nginx!”html文件。在重新启动我的服务之后,我唯一能想到的就是你的./code文件与你的docker-compose.yml文件不在同一级别。尝试放置一个完整路径,而不是相对的
/code
,然后查看是否可以解决此问题。