【问题标题】:Issue with docker compose: container command not founddocker compose 问题:找不到容器命令
【发布时间】:2016-05-25 03:16:57
【问题描述】:

我在尝试使用 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.

希望对这个问题有所帮助。

【问题讨论】:

  • 我刚开始看这个,因为我遇到了同样的问题。如果从 fpm 服务中删除卷部分,它会启动吗? (显然没有 php-fpm 可访问的文件,但只是为了兴趣)
  • 是的。没有fpm下的volumes部分,它可以正常启动。
  • 实际上,如果我将卷设置为“./src:/var/www/html”(对于 web 和 fpm 服务),应用程序将启动,但我无法访问任何内容本地主机。
  • 如果您在 Mac 或 Windows 上,可能需要访问 boot2docker vm 的 IP 而不是“localhost”。我的默认设置为 192.168.99.100。
  • 是的,就是这样。非常感谢。我仍然不确定为什么音量需要是/var/ww/html,但可能是因为php-fpm。如果您发布答案,我可以将其标记为已接受。

标签: php nginx docker docker-compose dockerfile


【解决方案1】:

就像 cmets 中提到的原始问题一样,php:fpm 图像需要将其音量设置为 /var/www/html

如果你想使用不同的目录,你可以使用你自己的 Dockerfile(基于 php:fpm)来解决这个问题。 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

【讨论】:

  • 这应该是正确答案!当前标记的答案是虚假的。
猜你喜欢
  • 1970-01-01
  • 2021-06-12
  • 2016-10-23
  • 2020-03-03
  • 2017-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多