推送到 GitHub 时出现奇怪的权限问题。我有一个测试作业,它运行覆盖范围的测试,然后在每次推送和拉取请求时将结果推送到 codecov。但是,这种情况仅适用于 root 用户。
如果与digitalshop用户一起运行,则会抛出错误:
Couldn't use data file '/digital-shop-app/.coverage': unable to open database file
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何在 docker 容器中运行覆盖率,这样它就不会抛出此错误?我的猜测是这是因为权限。
docker-compose.yml:
version: '3.9'
services:
test:
build: .
command: >
sh -c "
python manage.py wait_for_db &&
coverage run --source='.' manage.py test mainapp.tests &&
coverage report &&
coverage xml
"
volumes:
- ./digital-shop-app:/digital-shop-app
env_file: .env
depends_on:
- db
db:
image: postgres:13-alpine
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASS}
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM python:3.9-alpine3.13
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /requirements.txt
COPY ./digital-shop-app …Run Code Online (Sandbox Code Playgroud)