2016-12-27 50 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使用私有的非共享標籤標記內容。只有當前容器可以使用私人卷。