Django - gitlab-ci - sqlite3 - django.db.utils.OperationalError:无法打开数据库文件

时间:2021-04-16 12:45:12

标签: django sqlite gitlab-ci

gitlab runner (shell executor) 导致以下错误:django.db.utils.OperationalError: unable to open database file

.gitlab-ci.yml:

stages:
  - test

pytest:
  stage: test
  image: docker/compose:latest
  tags:
    - test
  before_script:
    - docker-compose build
    - docker-compose run --rm django python manage.py migrate
    - docker-compose up -d
  script:
    - docker-compose run django python manage.py test

Django 引擎设置.py:


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

这是我的 Dockerfile。 WORKDIR 目录 /app

FROM python:3.8-alpine

ENV PATH="/scripts:${PATH}"

COPY ./requirements /requirements
RUN pip install -r /requirements/local.txt -r /requirements/production.txt
RUN apk del .tmp

RUN mkdir /app
COPY ./app /app
WORKDIR /app
COPY ./scripts /scripts

RUN chmod +x /scripts/*

RUN mkdir -p /vol/web/media
RUN mkdir -p /vol/web/static

RUN adduser -D user
RUN chown -R user:user /vol
RUN chown -R user:user /app

RUN chmod -R 755 /vol/web
USER user

CMD ["entrypoint.sh"]

我不会将 db.sqlite3 推送到我的 gitlab 项目。

1 个答案:

答案 0 :(得分:1)

尝试将当前用户添加到您的“运行”命令中

docker-compose run -u root --rm django python manage.py migrate

此外,当您使用 dind 构建图像时,请检查跑步者的选项,选项 privileged 必须处于 True 条件

相关问题