在Gitlab CI上设置Postgis

时间:2018-12-06 12:07:25

标签: postgresql continuous-integration gitlab postgis gitlab-ci

我正在尝试通过django项目设置gitlab CI。该项目使用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 :(得分:1)

在我的情况下,我发现导致问题的原因是我用来连接数据库的主机。

通读GitLab文档后,我发现GitLab使用服务的名称作为连接的主机。因此,就我而言,从我的Python应用程序进行连接时,我使用mdillon-postgis作为主机。

您可以在这里https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services

中找到更多详细信息

答案 1 :(得分:0)

您可能未在数据库服务器中安装Postgis。您需要运行:sudo apt-get install postgis