Docker Compose启动单个容器报错:exec: com.docker.cli未在$PATH中找到
解决Docker Compose启动单个容器时
com.docker.cli: executable file not found in $PATH错误 问题场景
在Mac环境下执行docker-compose up时,只有fastapi容器抛出以下错误:
exec: "com.docker.cli": executable file not found in $PATH
同时尝试通过终端查看该容器日志的命令:
/bin/zsh '-c', 'docker logs -f f6557b5dd19d9b2bc5a63a840464bc2b879d375fe72bc037d82a5358d4913119'
执行失败,退出码为1。
已尝试的操作:
- 卸载并重新安装Docker Desktop 2.3.0.5
- 重新执行
docker-compose build,其他容器(postgresql、pgadmin、solr)均可正常运行,仅fastapi容器仍报错 - 此前该容器可正常运行,问题出现在升级Docker(原版本为2.3系列)及Mac系统更新之后
相关配置文件
Dockerfile(fastapi服务)
FROM tiangolo/uvicorn-gunicorn:python3.8 COPY requirements.txt /app/ RUN pip install -r requirements.txt COPY ./app /app/app #COPY config.py /app/app/
docker-compose.yml
version: "3" services: postgresql: container_name: postgresql image: postgres:12 ports: - "5433:5432" environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - ./postgres-data:/var/lib/postgresql/data fastapi: build: context: ./fastapi/ dockerfile: Dockerfile volumes: - ./fastapi/app/imgs:/app/app/imgs ports: - "1001:80" depends_on: - postgresql env_file: - .env pgadmin: container_name: pgadmin image: dpage/pgadmin4 environment: - PGADMIN_DEFAULT_EMAIL=pgadmin4@pgadmin.org - PGADMIN_DEFAULT_PASSWORD=admin ports: - "5050:80" depends_on: - postgresql solr: build: context: ./solr/ dockerfile: Dockerfile restart: always ports: - "8983:8983" volumes: - data:/var/solr volumes: data:
最终解决方案
将Docker Desktop降级至2.3.0.4版本后,问题完全解决,所有容器均可正常启动并运行。
补充分析
这个错误大概率是Docker Desktop 2.3.0.5版本的兼容性问题,尤其是在Mac系统更新后,新版本的Docker CLI组件路径或依赖出现异常,导致容器内部无法找到com.docker.cli可执行文件。降级到同系列的稳定旧版本(2.3.0.4)可以规避这个兼容性bug。
内容的提问来源于stack exchange,提问作者Sami Al-Subhi
相关产品推荐
相关产品推荐

