将 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) 正在将根项目文件夹安装到 php和 nginx 容器:
volumes:
- .:/app
经过一些自定义后,我重建了 php 容器,应用程序代码已成功添加到容器中(如 Dockerfile 中的说明),因此我可以编辑 docker-compose.override.yml 文件从 php 容器中删除 volume
指令,一切正常。
但是当我对 nginx 容器和 运行 docker-compose up -d
nginx 做同样的事情时,还给我a 404。这意味着它没有在 php 容器中找到登录页面。它只是在我挂载项目文件夹卷时找到它。
我想这不是预期的行为...我做错了什么?
基本上,nginx
只需要 index.php
和 assets/
的 PHP 图像的 web
文件夹。
所以你可以使用 volumes
和 volumes_from
,像这样:
php:
volumes:
- /app/web
nginx:
volumes_from:
- php
另一种选择是以某种方式配置 nginx
,它将所有请求转发到 PHP 容器,但这对于静态文件来说并不是真正需要的。
注意! 当您重新部署您的应用程序时,您可能需要 kill
和 rm -v
您的 PHP 和 nginx 容器以应用更改音量。
请随意创建一个问题,或者如果您有改进等方面的想法...
全面披露:我是 Phundament 的核心开发人员。
我正在尝试使用全新安装的 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) 正在将根项目文件夹安装到 php和 nginx 容器:
volumes:
- .:/app
经过一些自定义后,我重建了 php 容器,应用程序代码已成功添加到容器中(如 Dockerfile 中的说明),因此我可以编辑 docker-compose.override.yml 文件从 php 容器中删除 volume
指令,一切正常。
但是当我对 nginx 容器和 运行 docker-compose up -d
nginx 做同样的事情时,还给我a 404。这意味着它没有在 php 容器中找到登录页面。它只是在我挂载项目文件夹卷时找到它。
我想这不是预期的行为...我做错了什么?
基本上,nginx
只需要 index.php
和 assets/
的 PHP 图像的 web
文件夹。
所以你可以使用 volumes
和 volumes_from
,像这样:
php:
volumes:
- /app/web
nginx:
volumes_from:
- php
另一种选择是以某种方式配置 nginx
,它将所有请求转发到 PHP 容器,但这对于静态文件来说并不是真正需要的。
注意! 当您重新部署您的应用程序时,您可能需要 kill
和 rm -v
您的 PHP 和 nginx 容器以应用更改音量。
请随意创建一个问题,或者如果您有改进等方面的想法...
全面披露:我是 Phundament 的核心开发人员。