我正在嘗試使用全新安裝的Phundament 4.3.0-beta6,Docker 1.11.0和Docker Compose 1.7.0來容納Yii2 Web應用。主機是基於Ubuntu的Linux Mint 17.3。將Phundament web應用移至生產
一切工作都很好dev環境,但我沒有找到正確構建生產映像的方法。
我已經使用過老版本的Phundament和Docker,運行在相同的問題中,所以我很肯定我沒有面對一個bug:我只是誤解了一些東西。
問題是,當地發展(docker-compose.override.yml,重寫docker-compose.yml)泊塢窗,撰寫文件容器安裝根項目文件夾在兩個PHP和nginx的:
volumes:
- .:/app
一些定製我後重新構建php容器,應用程序代碼已成功添加到容器中(如Dockerfile中所述),因此我可以編輯docker-compose.override.yml文件,從php中刪除volume
指令容器,一切都OK。
但是,當我做同樣與nginx的容器和運行docker-compose up -d
nginx的給我回一個404這意味着它沒有找到着陸頁進PHP容器。它只是在我安裝項目文件夾卷時發現它。
我想這不是預期的行爲......我做錯了什麼?
謝謝您的回答,謝謝* * diemeisterei * * phd *的其餘部分!好的,所以這個配置的重點是讓'nginx'直接提供靜態文件。我仍然不清楚的是,如果在製作過程中,我應該:1.將app/web文件夾上傳到服務器,以便裝入音量或2.重新編譯「phundament/nginx」,並添加「COPY web」/app/web「,所以它可以從容器中使用。 – David
不客氣:)當你建立* phd *你['COPY'](https:// github。com/phundament/app/blob/b28dec88d9fae6f51bedaaa800f2cff9f7f8da86/Dockerfile#L18)'/ app/web'文件夾放到你的'php'圖像上。通過聲明一個'volume',你可以在其他容器中使用它(在相同的路徑下)。由於'nginx'使用'volumes'from''php'靜態文件在那裏可用。所以不需要建立兩個圖像,你可以使用公共的'phundament/nginx-one'圖像。 – schmunk
完美!現在我懂了。我需要(如你所寫)'卷: -/app'而不是'volumes:-.:/ app',所以它使用已經複製到'php'圖像文件夾而不是我的本地文件夾。現在事情完美無缺。你提到的'-v'標誌也很有用;我認爲,直到現在,我沒有有效地刪除以前的卷,所以我得到了誤導結果。再次感謝。 – David