Привет, я пытаюсь развернуть контейнер докеров Grafana в гибком движке Google App. Grafana будет использовать postgresql (cloud sql) в качестве внутренней базы данных.
В настоящее время я использую этот Dockefile:
FROM grafana/grafana:latest
ENV GF_SERVER_HTTP_PORT 8080
ENV GF_DATABASE_URL postgres://postgres:passwd@127.0.0.1:5432/grafana
ENV GF_DATABASE_TYPE postgres
EXPOSE 8080
и этот app.yaml:
runtime: custom
env: flex
service: grafana
beta_settings:
cloud_sql_instances: miproj:europe-west1:midb=tcp:5432
Я также активировал Cloud SQL Admin API
После выполнения
gcloud app deploy
однако я получаю
msg="Server shutdown" logger=server reason="Service init failed: Migration failed err: dial tcp 127.0.0.1:5432: connect: connection refused"
Я тоже пробовал
cloud_sql_instances: miproj:europe-west1:midb
и
ENV GF_DATABASE_URL postgres://postgres:passwd@/cloudsql/miproj:europe-west1:midb:5432/grafana
но я получаю
t=2019-05-09T10:12:56+0000 lvl=eror msg="Server shutdown" logger=server reason="Service init failed: Migration failed err: dial tcp: lookup port=5432: no such host"
но я думаю, что это может быть больше проблема того, как grafana анализирует цепочку соединений, в которой есть ":" в середине имени хоста.
Есть идеи, что я делаю не так?
Есть 2 варианта подключения к Postgresql из App Engine. Вы можете подключиться через TCP или через сокеты Unix. App Engine сгибать поддерживает оба, стандарт поддерживает только розетки. Когда я смотрю на ваш app.yaml, похоже, что вы уже настроили правильное имя соединения для TCP-соединения.
С другой стороны, строка подключения, которую вы используете в качестве переменной среды, кажется неправильной. Измените это:
postgres://postgres:passwd@/cloudsql/miproj:europe-west1:midb:5432/grafana
Кому:
postgres://postgres:passwd@172.17.0.1:5432/grafana
Docker использует 172.17.0.1 в качестве адреса обратной связи вместо 127.0.0.1! Подробный обзор можно найти в Google Cloudql doc.