Docker Compose带-p参数执行run命令时提示配置文件未找到
Docker Compose run命令提示"no configuration file provided: not found"
我的Docker Compose项目配置如下:
services: service_1: build: context: ./ dockerfile: ./src/Dockerfile env_file: - ./PROD.env service_2: build: context: ./ dockerfile: ./src_2/Dockerfile env_file: - ./PROD.env
服务在Compose文件和Dockerfile中均未指定command,启动后会立即停止,这符合预期。我希望按需通过指定命令启动服务,但执行以下命令时:
docker compose -p project_name run service_1 python app/main.py
始终收到错误提示:
no configuration file provided: not found
但执行不带服务名的命令(如以下这些)时可正常运行:
docker compose -p project_name logs docker compose -p project_name images
即使项目中有持续运行的服务,对其执行run命令也会出现相同错误。
我的环境是Docker Desktop for Windows,版本信息:
- Docker Desktop v4.33.1
- Docker version 27.1.1
- Docker Compose version v2.29.1-desktop.1
可能的解决方法
1. 明确指定Compose配置文件路径
run命令对配置文件上下文的要求更严格,可通过-f参数直接指定配置文件路径,避免自动查找失败:
docker compose -p project_name -f ./docker-compose.yml run service_1 python app/main.py
如果你的配置文件不是默认的docker-compose.yml,替换为实际文件名即可(比如docker-compose.prod.yml)。
2. 切换到配置文件所在工作目录
如果当前执行命令的目录不是配置文件所在的文件夹,先切换目录再运行命令:
cd /path/to/your/compose/project docker compose -p project_name run service_1 python app/main.py
3. 验证配置文件有效性
先确认配置文件存在且格式无错误,用以下命令检查:
docker compose -f ./docker-compose.yml config
如果配置有语法问题,会输出具体错误信息,修复后再尝试run命令。
4. 简化命令先测试
可先省略-p参数测试基础命令是否正常,再添加项目名参数:
docker compose run service_1 python app/main.py
测试通过后再补上-p project_name指定项目名。
内容的提问来源于stack exchange,提问作者Michail Highkhan
相关产品推荐
相关产品推荐

