GitLab CI Django和Postgres

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitLab CI Django和Postgres相关的知识,希望对你有一定的参考价值。

我在让GitLab的CI与我的Django项目一起工作时遇到了问题。我正在使用postgres服务器,似乎我设置了一些错误。任何帮助将非常感激!

错误:

django.db.utils.OperationalError: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我的.gitlab-ci.yml文件:

image: python:3.6.1

services:
    - postgres:9.3

variables:
  POSTGRES_DB: project_ci_test
  POSTGRES_USER: postgres
  POSTGRES_PASSWORD: ""

test:
    script:
    - export DATABASE_URL=postgres://postgres:@postgres:5432/project_ci_test
    - apt-get update -qy
    - apt-get install -y python-dev python-pip
    - pip install -r requirements.txt
    - python manage.py makemigrations
    - python manage.py migrate
    - python manage.py test Project

在我的django设置文件中:

DATABASES = {
    'default': {
        'ENGINE' : 'django.db.backends.postgresql_psycopg2',
        'NAME' : 'project_ci_test',
        'USER' : 'postgres',
        'PASSWORD': '',

    }
}

我目前正在尝试使用GitLab的共享运行者。我希望有人成功获得了一个带有postgres的Django项目来处理GitLab的CI。

谢谢!

答案

终于找到了问题所在。在我的Django项目的设置文件中指定主机和端口解决了这个问题!

DATABASES = {
    'default': {
        'ENGINE' : 'django.db.backends.postgresql_psycopg2',
        'NAME' : 'project_ci_test',
        'USER' : 'postgres',
        'PASSWORD': '',
        'HOST' : 'postgres'
        'PORT' : '5432'

    }
}

以上是关于GitLab CI Django和Postgres的主要内容,如果未能解决你的问题,请参考以下文章

如何使用多个 docker 设置 Gitlab CI E2E 测试

如何正确设置环境变量 Gitlab CI/CD 和 Docker

Gitlab CI:opencv-python 的构建***失败

Docker+Jenkins+Gitlab+Django应用部署实践

GItlab CI :- 如何使用 Gitlab-CI 在 Android 中创建多个 apk(如开发、登台和生产)?

基于GitLab的CI/CD系统重点记要