我试图使用Phundenti4.3.0-Beta6、Docker1.11.0和DockerCompose1.7.0的新安装来封装一个Yii2 web应用程序。主机是一个基于Ubuntu的LinuxMint17.3。
在开发环境中,一切都很好,但是我没有找到正确构建产品形象的方法。
我已经使用了旧版本的Phundament和Docker,运行在相同的问题上,所以我很确定我没有遇到错误:我只是误解了一些东西。
问题是,用于本地开发的docker-组合文件(docker-compose.override.yml,覆盖docker-compose.yml)正在将根项目文件夹安装在php和nginx容器上:
volumes:
- .:/app
在进行了一些定制之后,我重新构建了php容器,成功地将应用程序代码添加到容器中(按照Dockerfile中的指示),这样我就可以编辑docker-compose.override.yml文件,从php容器中删除volume
指令,一切都正常。
但是,当我对nginx容器做同样的操作并运行docker-compose up -d
时,nginx给我一个404。这意味着它没有在php容器中找到登陆页面。当我挂载项目文件夹卷时,它就会找到它。
我想这不是预期的行为..。我做错什么了?
发布于 2016-04-21 01:41:18
基本上,nginx
只需要index.php
和assets/
的PHP的web
文件夹。
所以您可以使用volumes
和volumes_from
,如下所示:
php:
volumes:
- /app/web
nginx:
volumes_from:
- php
另一种选择是以一种方式配置nginx
,它将所有请求转发给PHP容器,但这对于静态文件并不是真正需要的。
Note!在重新部署应用程序时,可能需要对kill
和rm -v
容器进行kill
和rm -v
以对卷进行更改。
随意制造一个问题,或者如果你有改进的想法等.
全面披露:我是一个核心的开发人员的庞德。
https://stackoverflow.com/questions/36761213
复制相似问题