我正在使用Django,Docker,Travis CI和Flake8构建项目。我的flake8文件:
[flake8]
max-line-length = 119
exclude =
migrations,
__pycache__,
manage.py,
settings.py,
env
[当我使用以下命令运行本地flake8测试时:
docker-compose exec app python manage.py test && flake8
我收到一条正常消息,没有错误消息。我的代码很好!
当我将代码推送到自动启动Travis CI的master时,由于以下错误,导致Travis构建失败:
./project/settings.py:94:80: E501 line too long (91 > 79 characters)
./project/settings.py:97:80: E501 line too long (81 > 79 characters)
./project/settings.py:100:80: E501 line too long (82 > 79 characters)
./project/settings.py:103:80: E501 line too long (83 > 79 characters)
./core/models.py:7:80: E501 line too long (93 > 79 characters)
./core/models.py:13:80: E501 line too long (104 > 79 characters)
./core/migrations/0001_initial.py:18:80: E501 line too long (126 > 79 characters)
The command "docker-compose run app sh -c "python manage.py test && flake8"" exited with 1.
我的flake8文件特别指出最大行长为119,因此不应发生这些错误(例如在本地计算机上运行测试时不会发生)。
有人知道发生了什么吗?
问题中没有足够的信息,所以我深入研究了OP的github
问问题时,这是他们的dockerfile:
FROM python:3.9.0a5-alpine3.10
MAINTAINER Tom Mac
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /requirements.txt
RUN apk add --update --no-cache postgresql-client
RUN apk add --update --no-cache --virtual .tmp-build-deps \
gcc libc-dev linux-headers postgresql-dev
RUN pip install -r /requirements.txt
RUN apk del .tmp-build-deps
RUN mkdir /app
WORKDIR /app
COPY ./app /app
RUN adduser -D user
USER user
他们的flake8配置位于其存储库根目录中的.flake8
处>
由于此文件不是其图像的一部分(没有COPY
将其放入其中,因此在棉绒衬里时未被尊重)>
将此文件添加到图像中(最简单的方法是COPY . .
添加everything
我怀疑发生了什么:
app/.flake8
中移走了配置(在上面的图像中为[[is)].
在运行时安装到了容器中COPY . .
都可以解决此问题