我正在尝试使用全新安装的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