You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:40:56