Docker Compose на Crunchy Postgres и Hasura Graphql Engine - настройки URL базы данных
Если вопрос неясен или не хватает информации, пожалуйста, дайте мне знать, так как я сделал все возможное, чтобы представить мою проблему из моего понимания...
Я пытаюсь настроить образ Crunchy Postgres с Hasura GraphQL Engine, я попытался изменить имя хоста в соответствии с рекомендациями документации, но оно вообще не подключается к моему образу Crunchy Postgres.
Ссылки на документы:
https://docs.hasura.io/1.0/graphql/manual/deployment/docker/index.html
https://hub.docker.com/r/crunchydata/crunchy-postgres/
Мой файл Docker-Compose:
version: '3.5'
services:
unipgdb:
image: crunchydata/crunchy-postgres:centos7-11.1-2.3.0
restart: always
ports:
- "5432:5432"
env_file:
- ./config/postgres/cpg-env.list
volumes:
- unipgdata_volume:/var/lib/postgresql/data
networks:
- unicausalapi
graphql-engine:
image: hasura/graphql-engine:v1.0.0-alpha37
ports:
- "8080:80"
depends_on:
- "unipgdb"
restart: always
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://user:password@postgres:5432/unipgdb
HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
## uncomment next line to set an access key
# HASURA_GRAPHQL_ACCESS_KEY: mysecretaccesskey
networks:
- unicausalapi
# For Hasura engine
caddyhasura:
build:
context: .
dockerfile: caddyhasura-Dockerfile
depends_on:
- graphql-engine
networks:
- unicausalapi
- unicausalpublic
- unicausalnetwork
volumes:
static_volume: # <-- declare the static volume
media_volume: # <-- declare the media volume
unipgdata_volume:
external: true
networks:
unicausalpublic:
external: true
unicausalnetwork:
external: true
unicausalapi:
external: true
В сервисе Caddyfile для caddyhasura это всего лишь обратный прокси-сервер в контейнере graphql-engine, поэтому это не должно влиять на мою проблему.
Я думаю, что неправильно настраиваю HASURA_GRAPHQL_DATABASE_URL с именем хоста, потому что я не уверен, что положить для использования изображения crunchy-postgres:centos7.
Я получаю эту ошибку в Docker Log
Как мне настроить это для работы с моим файлом docker-compose, используя эти изображения?
HASURA_GRAPHQL_DATABASE_URL: postgres://user:password@postgres:5432/unipgdb
Есть мысли о том, что делать, чтобы попытаться решить мою проблему? Заранее спасибо.
1 ответ
Так как Crunchy Postgres имя контейнера unipgdb
имя хоста для контейнера будет таким же. Вместо postgres
в качестве имени хоста, вы должны использовать это.
Таким образом, URL вашей базы данных станет
HASURA_GRAPHQL_DATABASE_URL: postgres://user:password@unipgdb:5432/unipgdb
Если ваше имя пользователя или пароль содержит специальные символы (например, $, #, @ и т. Д.), Убедитесь, что вы кодируете URL и используйте их в URL. ссылка: https://www.degraeve.com/reference/urlencoding.php
Например, если пароль secretPassW$or#
, это должно быть введено как secretPassW%24or%23