首页 > 解决方案 > 获取 flake8 返回一个非零代码: 1 在 docker

问题描述

我一直在关注这篇文章。 https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/#production-dockerfile

在生产 Dockerfile 部分,Dockerfile.prod 文件包含这些行。

# lint
RUN pip install --upgrade pip
RUN pip install flake8
COPY . /usr/src/app/
RUN flake8 --ignore=E501,F401 .

当我运行以下命令时,

docker-compose -f docker-compose.prod.yml up -d --build

我收到以下错误。

ERROR: Service 'web' failed to build: The command '/bin/sh -c flake8 --ignore=E501,F401' returned a non-zero code: 1

我不太了解 flake8,当我评论“RUN flake8 --ignore=E501,F401”时。Dockerfile.prod 文件中的行一切正常。

谁能告诉我为什么我会遇到这个问题并告诉我一个修复而不是从 Dockerfile 中删除该行。我不太了解flak8,而且我对Docker也很陌生,非常感谢您的帮助:)

谢谢。

标签: pythondjangodockerdocker-composeflake8

解决方案


(至少现在)只让代码 linting在您的 Django App 文件夹中发生可能是一个好主意。因此,如果您按照本教程进行而不做任何改动,您可能需要替换这一行:

RUN flake8 --ignore=E501,F401 .

使用您的 Django 项目代码...

RUN flake8 --ignore=E501,F401 ./hello_django

否则,可能会有很多东西被检查,你不想被 flake8 检查。


推荐阅读