настройка postgis на Gitlab CI - PullRequest
       34

настройка postgis на Gitlab CI

0 голосов
/ 06 декабря 2018

Я пытаюсь настроить gitlab CI с моим проектом django.В проекте используется расширение postgis.После всех этих настроек я все еще получаю сообщение об ошибке, что файл postgis.control не может быть найден

$ export PGPASSWORD=$POSTGRES_PASSWORD
$ psql -c "CREATE EXTENSION IF NOT EXISTS postgis;" -d $POSTGRES_DB -U $POSTGRES_USER -h "postgres"
ERROR:  could not open extension control file "/usr/share/postgresql/11/extension/postgis.control": No such file or directory
ERROR: Job failed: exit code 1

Вот мой файл .gitlab-ci.yml

image: python:3.6

stages:
  - test

services:
  - mdillon/postgis
  - postgres

variables:
  POSTGRES_DB: my_db
  POSTGRES_USER: my_user
  POSTGRES_PASSWORD: ""
  TESTFOLDER: "myapp/apps/api myapp/apps/logger"
  DATABASE_URL: "postgres://my_user:@mdillon-postgis/my_db"

test:
  stage: test
  image: mdillon/postgis
  before_script:
    - apt-get update -qy
    - export PGPASSWORD=$POSTGRES_PASSWORD
    - psql -c "CREATE EXTENSION IF NOT EXISTS postgis;" -d $POSTGRES_DB -U    $POSTGRES_USER -h "postgres"
    - psql -c "CREATE EXTENSION IF NOT EXISTS postgis_topology;" -d $POSTGRES_DB -U $POSTGRES_USER -h "postgres"
    - apt-get install -y openjdk-8-jre-headless libjpeg-dev zlib1g-dev software-properties-common ghostscript libxslt1-dev binutils libproj-dev libgdal-dev gdal-bin memcached libmemcached-dev 
    - export DEBIAN_FRONTEND=noninteractive;
    - pip install --upgrade pip
    - pip install -r requirements/base.pip
    - pip install flake8
  script:
    - python manage.py test $TESTFOLDER --noinput --settings=myapp.settings.gitlab_ci --parallel 4 --verbosity=2
  only:
    - master

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

В моем случае я обнаружил, что причиной проблемы была именно хост, который я использовал для подключения к базе данных.

После прочтения документации GitLab я обнаружил, что GitLab использует имяслужба в качестве хоста для соединения.Так что в моем случае при подключении из приложения Python я использовал mdillon-postgis в качестве хоста.

Более подробную информацию вы можете найти здесь https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services

0 голосов
/ 15 января 2019

Возможно, у вас не установлен postgis на сервере базы данных.вам нужно ro run: sudo apt-get install postgis

...