DOCKER:ERR_EMPTY_RESPONSE - Mac

时间:2018-03-26 20:41:53

标签: php docker yii port

我是Docker的新手,刚刚迈出了第一步。 我想与docker玩一点,并且是为yii配置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

然后我用:

运行容器
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是否运行,这会导致上述问题。

1 个答案:

答案 0 :(得分:2)

创建容器时未启动

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 

现在,CMD图层yiiCMD图片中的php:7.2.3-apache图层重叠。

如果您想在容器内启动yiiapache,请查看these pieces of advice

更新问题中的修改部分:

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