Postgresql 外部postgres db连接URL的KeyClope docker compose Yaml文件格式是什么
我需要用外部postgres数据库连接URL设置KeyClope docker服务器。 下面是我当前的yaml文件内容,它正在处理POstgres docker容器图像,如前所述Postgresql 外部postgres db连接URL的KeyClope docker compose Yaml文件格式是什么,postgresql,docker-compose,yaml,dockerfile,keycloak,Postgresql,Docker Compose,Yaml,Dockerfile,Keycloak,我需要用外部postgres数据库连接URL设置KeyClope docker服务器。 下面是我当前的yaml文件内容,它正在处理POstgres docker容器图像,如前所述 version: '3' volumes: postgres_data: driver: local services: postgres: image: postgres:11 volumes: - postgres_data:/var/lib/postgresql/d
version: '3'
volumes:
postgres_data:
driver: local
services:
postgres:
image: postgres:11
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
ports:
- 5433:5432
keycloak:
image:jboss/keycloak:latest
environment:
DB_VENDOR: POSTGRES
DB_ADDR: postgres
DB_DATABASE: keycloak
DB_USER: keycloak
DB_SCHEMA: public
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
KEYCLOAK_LOGLEVEL: DEBUG
ROOT_LOGLEVEL: DEBUG
ports:
- 8080:8080
- 8443:8443
depends_on:
- postgres
我检查了传递外部数据库连接URL的官方文档。
但确实没有得到YAML文件中需要的更改
参考:
我尝试从服务中删除Postgres和Dependes_on部分,并在yaml的Kecyloak环境部分中传递了数据库连接详细信息,但这对我不起作用
有人能建议正确的YAML文件更改以使用PostgresDB连接URL吗
谢谢。Docker容器可以通过它们的服务名称看到彼此,因此这里的服务名称
postgres
实际上是keydape
容器的连接url
版本:“3”
卷数:
postgres_数据:
司机:本地
服务:
博士后:#服务名称
图片:博士后:11
卷数:
-postgres_数据:/var/lib/postgresql/data
环境:
博士后:钥匙斗篷
POSTGRES_用户:密钥斗篷
POSTGRES_密码:PASSWORD
端口:
- 5433:5432
钥匙斗篷:
图片:jboss/keybeave:latest
环境:
DB_供应商:POSTGRES
DB_ADDR:postgres#我按照您建议的yaml文件格式进行了尝试
version: '3'
volumes:
postgres_data:
driver: local
services:
postgres:
image: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: keycloakLocal
POSTGRES_USER: postgres
POSTGRES_PASSWORD: Adm!n@123
keycloak:
image: quay.io/keycloak/keycloak:latest
environment:
DB_VENDOR: POSTGRES
DB_ADDR: localhost
DB_PORT: 5432
DB_DATABASE: keycloakLocal
DB_USER: postgres
DB_SCHEMA: public
DB_PASSWORD: Adm!n@123
KEYCLOAK_USER: localkeycloak
KEYCLOAK_PASSWORD: local
ports:
- 8080:8080
depends_on:
- postgres
但在连接到数据库时仍然出现错误
postgres数据库托管在本地主机上
还在出错吗
拒绝连接数据库当您编写localhost时,它是KeyClope容器的本地。容器对主机的看法不同。它可以是host.docker.internal
或类似于172.17.0.1
的ip。请仔细阅读我的评论,感谢您的回复,将DB_ADDR:host.docker.internal放在我的位置,但您能建议我们如何使用托管在Azure或其他存储库上的数据库吗,在这种情况下,我们将如何传递此DB_ADDR环境变量是否可以不使用postgres映像/容器,而只传递postgres ConnectionUrl当然可以,请确保存在keydove的数据库用户。您是否可以共享该数据库的yaml文件格式?我们只需要keydove容器和外部postgres数据库连接keydove,只需使用连接URL即可删除postgresTried下面版本中嵌套的所有内容:“3”服务:keydove:image:quay.io/keydove/keydove:latest环境:DB_供应商:POSTGRES DB_地址:localhost DB_端口:5432 DB_数据库:keydepose本地DB_用户:POSTGRES DB_架构:public DB_密码:Adm!n@123keydove_用户:localkeydove keydove_密码:本地端口:-8080:8080删除了所有与postgres相关的数据刚刚传递了环境变量也传递了IP地址,而不是localhost仍然没有连接