我正在尝试通过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
答案 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