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

Docker环境执行flake8提示sh: flake8: not found的解决方法咨询

解决docker-compose run执行flake8提示not found的问题

问题原因

你的Dockerfile中if判断语句存在语法错误,导致requirements.dev.txt中的flake8没有被安装。具体是[$DEV = "true"]缺少空格,shell无法正确解析这个条件判断,直接跳过了dev依赖的安装步骤。

解决步骤

1. 修复Dockerfile的语法错误

修改Dockerfile中RUN指令里的if判断部分,确保括号前后有空格:

ARG DEV=false
RUN python -m venv /py && \
    /py/bin/pip install --upgrade pip && \
    /py/bin/pip install -r /tmp/requirements.txt && \
    if [ $DEV = "true" ]; \
    then /py/bin/pip install -r /tmp/requirements.dev.txt ; \
    fi && \
    rm -rf /tmp && \
    adduser \
    --disabled-password \
    --no-create-home \
    django-user

2. 重新构建镜像(清除缓存)

由于Docker会缓存之前的构建层,需要强制重新构建镜像以应用修改:

docker-compose build --no-cache app

3. 再次执行flake8命令

现在重新运行flake8检查即可正常执行:

docker-compose run --rm app sh -c "flake8"

补充说明

你的Dockerfile已经正确设置了ENV PATH="/py/bin:$PATH",所以只要flake8被安装到虚拟环境的/py/bin目录下,shell就能找到该命令。修复语法错误后,dev依赖会被正确安装,问题即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:55:05