我试图使用全新安装的Phundament 4.3.0-beta6,Docker 1.11.0和Docker Compose 1.7.0来集成Yii2网络应用程序。主机是基于Ubuntu的Linux Mint 17.3。
在 dev 环境中,一切都运行良好,但我找不到正确构建生产映像的方法。
我已经使用过旧版本的Phundament和Docker,运行相同的问题,所以我很确定我没有遇到过错误:我只是误解了一些东西。
问题是,本地开发的docker-compose文件(docker-compose.override.yml,覆盖docker-compose.yml)正在 php 和 nginx上挂载根项目文件夹容器:
volumes:
- .:/app
经过一些自定义后,我重建了php容器,应用程序代码已成功添加到容器中(按照Dockerfile中的说明),因此我可以编辑docker-compose.override.yml文件,删除{{1来自 php 容器的指令,一切正常。
但是当我对 nginx 容器执行相同操作并运行volume
nginx 时,请给我一个404.这意味着它没有找到登陆页面进入 php 容器。它只是在我挂载项目文件夹卷时找到它。
我想这不是预期的行为......我做错了什么?
答案 0 :(得分:1)
基本上,nginx
只需要web
和index.php
的PHP图片的assets/
文件夹。
所以你可以使用volumes
和volumes_from
,如下所示:
php:
volumes:
- /app/web
nginx:
volumes_from:
- php
另一种选择是以某种方式配置nginx
,它将所有请求转发到PHP容器,但静态文件并不真正需要。
注意!重新部署应用程序时,可能需要kill
和rm -v
PHP和nginx容器对卷应用更改。
随意创建一个问题,或者如果您对改进等有所了解......
完全披露:我是Phundament的核心开发者。