代码之家  ›  专栏  ›  技术社区  ›  codelifter

DOCKER:ERR\u EMPTY\u RESPONSE-Mac

  •  1
  • codelifter  · 技术社区  · 6 年前

    我是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 回复  |  直到 6 年前
        1
  •  3
  •   nickgryg    6 年前

    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 使用图层 yii 重叠 CMD命令 图层来源 php:7.2.3-apache 形象

    如果你想同时开始 yii型 阿帕奇 在你应该注意的容器内 these pieces of advice

    更新问题中的编辑部分:

    你得跑了 php yii serve 0.0.0.0 。否则 yii型 绑定到 localhost:8080 并且只能在容器内访问