1

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

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

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

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

volumes:
  - .:/app

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

但是当我对nginx容器执行相同操作并运行docker-compose up -d nginx时,返回 404。这意味着它没有在php容器中找到登录页面。它只是在我挂载项目文件夹卷时找到它。

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

4

1 回答 1

1

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

所以你可以使用volumesand volumes_from,像这样:

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

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

笔记!当您重新部署应用程序时,您可能需要PHPkillrm -vnginx 容器在卷上应用更改。

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

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

于 2016-04-21T09:41:18.517 回答