将 Phundament 网络应用程序移至生产环境

Moving Phundament web app to production

我正在尝试使用全新安装的 Phundament 4.3.0-beta6、Docker 1.11.0 和 Docker Compose 1.7.0 将 Yii2 网络应用程序容器化。主机是基于 Ubuntu 的 Linux Mint 17.3.

dev 环境中一切正常,但我找不到正确构建生产映像的方法。

我已经在相同的问题上使用过旧版本的 Phundament 和 Docker、运行ning,所以我很确定我没有遇到错误:我只是误解了一些东西。

问题是,用于本地开发的 docker-compose 文件 (docker-compose.override.yml, that overrides docker-compose.yml) 正在将根项目文件夹安装到 phpnginx 容器:

volumes:
  - .:/app

经过一些自定义后,我重建了 php 容器,应用程序代码已成功添加到容器中(如 Dockerfile 中的说明),因此我可以编辑 docker-compose.override.yml 文件从 php 容器中删除 volume 指令,一切正常。

但是当我对 nginx 容器和 运行 docker-compose up -d nginx 做同样的事情时,还给我a 404。这意味着它没有在 php 容器中找到登录页面。它只是在我挂载项目文件夹卷时找到它。

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

基本上,nginx 只需要 index.phpassets/ 的 PHP 图像的 web 文件夹。

所以你可以使用 volumesvolumes_from,像这样:

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

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

注意! 当您重新部署您的应用程序时,您可能需要 killrm -v 您的 PHP 和 nginx 容器以应用更改音量。

请随意创建一个问题,或者如果您有改进等方面的想法...

全面披露:我是 Phundament 的核心开发人员。