Как включить postgis для исполнителя Kubernetes под gitlab-runner? - PullRequest
1 голос
/ 08 октября 2019

Я пытаюсь настроить поток CI для приложения Django, которое опирается на postgis с исполнителем Kubernetes под управлением runner. Пытаясь это сделать, я столкнулся с несколькими видами проблем:

  • Попытка использовать postgres в качестве службы, очевидно, недостаточна, но безуспешно, сообщая, что /usr/share/postgresql/9.6/extensions/postgis.control не может быть найден. На данный момент, это ожидаемо - но я включаю его здесь, потому что это служит доказательством того, что соединение Django / PostgreSQL работает нормально, поскольку сбой происходит при попытке CREATE EXTENSION 'postgis' из сценария начальной загрузки базы данных.

  • Добавление шага before_script к apt install -y postgis* postgresql-9.6-postgis-scripts, как рекомендовано в предыдущем ответе на SO, также приводит к сбою таким же образом. Поскольку это исполнитель k8s, я подозреваю, что он не устанавливает postgis на фактический хост postgres, что приводит к ошибке. Добавление шага find /usr postgis.control подтверждает, что файл существует в контейнере бегущего теста.

  • Я также пытался использовать контейнер mdillon/postgis, на который часто ссылаются как на решение этой проблемы, но нетигра в кости: использование localhost в качестве хоста базы данных в приложении Django (которое работает как для простых postgres, так и рекомендовано документами для типа k8s executor) приводит к ошибкам о недоступности postgres на localhost:5432. Обновление имени хоста до mdillon__postgis также не удается (но это предсказуемо, поскольку этот формат имен DNS должен работать только на исполнителях Docker).

  • На этом этапе я также пыталсясоздание сделанного на заказ Dockerfile, но то, что у меня есть, очень близко имитирует Dockerfile mdillon/postgis (есть только очень много способов установить postgis и скопировать скрипт initdb) и завершается сбоем таким же образом.

Есть ли какой-нибудь документированный или, по крайней мере, работающий способ получить Postgres с postgis, работающим под управлением исполнителя k8s gitlab-runner?

...