2016-12-27 132 views
0

我刚开始使用docker,目前为止我非常热情!目前,我正在尝试构建一个非常基本且可扩展的文件,它只是提供基本的静态网站。我想,这应该不是什么难事,但我有以下问题:覆盖Docker中的nginx html目录配置配置

以下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 
+0

我刚刚测试了您的撰写文件,并按预期工作。我在./code目录下创建了一个简单的index.html文件。停止并启动你的Docker服务,看看是否能解决它;我不幸有类似的问题,停下来开始解决。 –

+0

嗯奇怪,我只看到'Welcome to nginx!' html文件。此外重新启动我的服务后。 – hY8vVpf3tyR57Xib

+0

之后我唯一能想到的就是你的./code文件与docker-compose.yml文件不在同一级别。尝试放置一个完整的路径而不是相对的'。/ code',看看是否能解决它。 –

回答

1

所以我把它加入了:z标签上我的卷命令工作。所以在我的最后一行代码变成了:

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

按照docker documentation标签:z和:Z改变标签在容器上下文。这些后缀告诉Docker重新标记共享卷上的文件对象。 :z选项告诉Docker两个容器共享卷内容。因此,Docker使用共享内容标签来标记内容。共享卷标允许所有容器读取/写入内容。 :Z选项告诉Docker使用私有的非共享标签标记内容。只有当前容器可以使用私人卷。