You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 11中docker-compose up执行失败问题求助

问题分析与解决

核心问题

报错exec: "docker-compose": executable file not found in $PATH的根源是:容器内部没有安装docker-compose,你在docker-compose.yml的command字段里写的docker-compose run --rm app ...,是试图在容器内执行宿主机的命令——这完全没必要,而且容器环境里根本没有这个工具。

另外你的Dockerfile还有两处明显错误:

  • pip install --upgrade pop是笔误,应该是pip install --upgrade pip
  • 最后一行的ENV PATH="C:\Program Files\Python38\:$PATH"是Windows系统路径,而容器用的是Alpine Linux,这个设置完全无效,还可能干扰容器内的PATH配置

解决方案

1. 修正docker-compose.yml的command

直接去掉多余的docker-compose调用,保留启动服务的核心命令即可:

version: "3.9"

services:
  app:
    build:
      context: .
      args:
        - DEV=true
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
    command: sh -c "python manage.py runserver 0.0.0.0:8000"

或者更简洁的写法:

command: python manage.py runserver 0.0.0.0:8000

2. 修正Dockerfile的错误

FROM python:3.12.1-alpine3.19
LABEL maintainer="jtelemarketing.com"

ENV PYTHONUNBUFFERED 1

COPY ./requirements.txt .
COPY ./requirements.dev.txt .

COPY ./app /app
WORKDIR /app
EXPOSE 8000

ARG DEV=false
RUN python -m venv /py && \
    # 修正笔误:pop → pip
    pip install --upgrade pip && \
    pip install -r /requirements.txt && \
    if [ $DEV == "true" ]; \
        then  pip install -r /requirements.dev.txt ; \
    fi

# 替换无效的Windows PATH,添加虚拟环境的路径(可选但推荐)
ENV PATH="/py/bin:$PATH"

为什么之前的操作能生效?

  • 替换成python manage.py runserver ...能运行:因为这是直接在容器内执行Python命令,容器本身配置了Python环境
  • 在终端直接执行docker-compose run --rm app ...能运行:因为这个命令是在宿主机执行的,宿主机已经安装了docker-compose,它会创建新容器并执行里面的Python命令

内容的提问来源于stack exchange,提问作者Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:07:23