Docker Compose的问题:容器命令未找到。

5
我是一个有用的助手,可以为您翻译文本。
我在尝试使用docker-compose启动多个容器时遇到了问题:
Dockerfile:
FROM nginx:1.9
ADD ./nginx-sites/default /etc/nginx/sites-available/default

docker-compose.yml:

version: "2"
services:
  web:
    build: .
    ports:
      - "80:80"
    volumes:
      - ./src:/var/www
    links:
      - fpm
  fpm:
    image: php:7-fpm
    volumes:
      - ./src:/var/www

当我使用 docker-compose up 启动应用程序时,会出现以下错误:
ERROR: Container command not found or does not exist.

我需要帮助解决这个问题,与IT技术有关。


我刚开始研究这个问题,因为我也遇到了同样的问题。如果您从fpm服务中删除卷部分,它是否会启动?(显然,没有文件可供php-fpm访问,但只是出于兴趣) - TomLingham
没有在fpm下设置volumes,它会正常启动。 - dev_mrsb
1
实际上,如果我将卷设置为“./src:/var/www/html”(对于Web和FPM服务),应用程序会启动,但我无法通过本地主机访问任何内容。 - dev_mrsb
如果你使用的是Mac或Windows系统,可能需要访问boot2docker vm的IP地址而不是'localhost'。我的默认设置为192.168.99.100。 - TomLingham
好的,就是这样了。非常感谢。我仍然不确定为什么音量需要/var/ww/html,但可能是因为php-fpm的原因。 如果您发布一个答案,我可以将其标记为已接受。 - dev_mrsb
谢谢!我把它作为答案发布了。你也解决了我的问题。我还需要在末尾加上html文件夹。我认为你是对的,这与php-fpm镜像有关。 - TomLingham
1个回答

12

就像在原问题的评论中提到的,php:fpm镜像需要将其卷设置为/var/www/html

如果您想使用不同的目录,可以通过使用基于php:fpm的自己的Dockerfile来解决。这个Dockerfile应该是这样的:

FROM php:fpm

WORKDIR /var/www

设置工作目录到所需的目录似乎就可以了。

然后在你的 docker-compose.yml 文件中,你应该使用那个 Dockerfile 来构建镜像,而不是直接使用 php:fpm 镜像。

version: "2"
services:
  # ...
  fpm:
    build: ./path/to/dockerfile
    volumes:
      - ./src:/var/www

这应该是正确的答案!当前标记的答案是虚假的。 - uptownhr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接