如何配置Keycloak加入Docker Compose中的现有网络
Keycloak加入已有arc-net网络的配置指导
1. 修正Docker Compose语法错误
你当前的YML文件中networks部分存在语法问题:name:arc-net缺少空格,会导致Docker Compose解析失败。以下是修正后的完整配置:
version: '3' volumes: postgres_data: driver: local services: keycloak: image: jboss/keycloak container_name: arc-jboss-keycloak networks: - arc-net environment: DB_VENDOR: POSTGRES DB_ADDR: <db_host_ip> DB_PORT: 20000 DB_DATABASE: jboss-keycloak DB_USER: admin DB_SCHEMA: public DB_PASSWORD: admin KEYCLOAK_USER: admin KEYCLOAK_PASSWORD: admin KEYCLOAK_LOGLEVEL: DEBUG ROOT_LOGLEVEL: DEBUG ports: - 20001:8080 #- 8443:8443 #depends_on: # - postgres networks: arc-net: external: name: arc-net # 此处添加空格修正语法
2. 验证已有网络存在
执行以下命令确认arc-net网络已经存在:
docker network ls
如果列表中没有arc-net,需要先创建该网络(已有网络则跳过此步):
docker network create arc-net
3. 启动Keycloak服务
在配置文件所在目录执行启动命令:
docker-compose up -d
关键注意事项
- 替换
<db_host_ip>:如果PostgreSQL容器也在arc-net网络中,直接使用容器名称作为DB_ADDR即可,Docker内置DNS会自动解析,比固定IP更稳定。 - 端口冲突检查:确保主机的20001端口未被其他服务占用,否则启动会失败。
- 数据库就绪校验:如果启用
depends_on,仅能保证Keycloak在PostgreSQL之后启动,无法确保数据库已完全就绪。生产环境建议为PostgreSQL添加健康检查,让Keycloak等待数据库就绪后再启动。
内容的提问来源于stack exchange,提问作者Vikas Nale
相关产品推荐
相关产品推荐

