将Phundament Web应用程序移至生产

时间:2016-04-21 06:22:28

标签: docker yii2 docker-compose phundament

我试图使用全新安装的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 容器。它只是在我挂载项目文件夹卷时找到它。

我想这不是预期的行为......我做错了什么?

1 个答案:

答案 0 :(得分:1)

基本上,nginx只需要webindex.php的PHP图片的assets/文件夹。

所以你可以使用volumesvolumes_from,如下所示:

php:
  volumes:
    - /app/web
nginx:
  volumes_from:
    - php

另一种选择是以某种方式配置nginx,它将所有请求转发到PHP容器,但静态文件并不真正需要。

注意!重新部署应用程序时,可能需要killrm -v PHP和nginx容器对卷应用更改。

随意创建一个问题,或者如果您对改进等有所了解......

完全披露:我是Phundament的核心开发者。