Php docker compose出现问题:未找到容器命令
尝试使用docker compose启动多个容器时遇到问题: Dockerfile:Php docker compose出现问题:未找到容器命令,php,nginx,docker,docker-compose,dockerfile,Php,Nginx,Docker,Docker Compose,Dockerfile,尝试使用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
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.
希望在这个问题上能得到一些帮助。就像原始问题的评论中提到的那样,php:fpm图像需要将其音量设置为
/var/www/html
如果您想使用不同的目录,可以使用自己的Dockerfile(基于php:fpm)来解决这个问题。该Dockerfile
将如下所示:
FROM php:fpm
WORKDIR /var/www
似乎将workdir设置为所需的dir就可以做到这一点
然后在您的docker compose.yml
中,您将使用该Dockerfile进行构建,而不是直接使用php:fpm映像
version: "2"
services:
# ...
fpm:
build: ./path/to/dockerfile
volumes:
- ./src:/var/www
我刚开始考虑这个问题,因为我也有同样的问题。如果从fpm服务中删除卷部分,它是否会启动?(显然没有php fpm可以访问的文件,但只是出于兴趣)是的。如果fpm下没有volumes部分,它将正常启动。实际上,如果我将卷设置为“/src:/var/www/html”(对于web和fpm服务),应用程序将启动,但我无法通过localhost访问任何内容。如果您在Mac或Windows上,可能需要点击boot2docker vm的IP而不是“localhost”。我的默认设置为192.168.99.100。是的,就是这样。谢谢。我仍然不确定为什么卷需要是/var/ww/html,但这可能是因为php fpm。如果你发布一个答案,我可以将其标记为已接受。这应该是正确的答案!目前的答案是假的。