DOCKER: ERR_EMPTY_RESPONSE - Mac

DOCKER: ERR_EMPTY_RESPONSE - Mac

我是 Docker 的新手,刚刚迈出第一步。 我想玩一下 docker 并为 yii 配置一个 Docker 文件:

FROM php:7.2.3-apache

RUN curl -sS https://getcomposer.org/installer | php && \
    mv composer.phar /usr/local/bin/composer

RUN apt-get update && apt-get install -y git unzip zip

EXPOSE 8080

RUN composer create-project --prefer-dist yiisoft/yii2-app-basic test

然后我 运行 容器有:

docker container run -d --name test -p 8080:8080 test-yii

当我去 localhost:8080 时,我得到了一个 ERR_EMPTY_RESPONSE。 这是 docker container inspect:

的网络结果
"Ports": {
     "80/tcp": null,
     "8080/tcp": [
          {
               "HostIp": "0.0.0.0",
               "HostPort": "8080"
          }
     ]
},

感谢所有帮助我解决此问题的提示!

编辑:我忘了提到我连接到容器然后 运行 php yii serve 测试 Yii 运行s 是否会导致上述问题。

YII 在创建容器时没有启动。那是因为它没有在 Dockerfile 中定义。只有 apache 从那里开始,因为它来自图像 php:7.2.3-apache

正确的Dockerfile是:

FROM php:7.2.3-apache

RUN curl -sS https://getcomposer.org/installer | php && \
    mv composer.phar /usr/local/bin/composer

RUN apt-get update && apt-get install -y git unzip zip

EXPOSE 8080

RUN composer create-project --prefer-dist yiisoft/yii2-app-basic test
CMD test/yii serve 0.0.0.0 

现在,CMDyiiphp:7.2.3-apache 图像的 CMD 层重叠。

如果你想在一个容器内同时启动 yiiapache 你应该查看 .

更新问题中的编辑部分:

您需要 运行 php yii serve 0.0.0.0。否则 yii 绑定到 localhost:8080 并且只能在容器内访问