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