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

Red Hat SSO 7.6-25容器停止后无法重启问题问询

RH SSO 7.6-25/7.6-10容器停止后无法重启的问题解决

问题描述

运行标签为7.6-25的Red Hat Single Sign-On(RH SSO)Docker镜像registry.redhat.io/rh-sso-7/sso76-openshift-rhel8:7.6-25时,首次启动容器应用可正常运行,但停止后再次启动会立即退出,导致应用无法访问。7.6-10版本复现该问题时,日志会明确报错数据源重复:

2023-08-30 02:04:18 00:04:18,093 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 27) WFLYCTL0013: Operation ("add") failed - address: ([
2023-08-30 02:04:18     ("subsystem" => "datasources"),
2023-08-30 02:04:18     ("data-source" => "KeycloakDS")
2023-08-30 02:04:18 ]) - failure description: "WFLYCTL0212: Duplicate resource [
2023-08-30 02:04:18     ("subsystem" => "datasources"),
2023-08-30 02:04:18     ("data-source" => "KeycloakDS")
2023-08-30 02:04:18 ]"
2023-08-30 02:04:18 00:04:18,210 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) "WFLYCTL0193: Failed executing subsystem datasources boot operations"
2023-08-30 02:04:18 00:04:18,212 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("parallel-subsystem-boot") failed - address: ([]) - failure description: "WFLYCTL0193: Failed executing subsystem datasources boot operations"
2023-08-30 02:04:18 00:04:18,218 FATAL [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0056: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.

相关Docker Compose配置:

rh-sso:
  container_name: rh-sso
  image: registry.redhat.io/rh-sso-7/sso76-openshift-rhel8:7.6-25
  ports:
    - "8080:8080" 
  environment:
    SSO_ADMIN_USERNAME: admin
    SSO_ADMIN_PASSWORD: admin 

重现步骤

  • 执行命令启动RH SSO容器:docker run -d -p 8080:8080 registry.redhat.io/rh-sso-7/sso76-openshift-rhel8:7.6-25
  • 访问应用确认正常运行
  • 通过命令docker stop <container_id>或Docker工具停止容器
  • 再次使用步骤1的命令启动容器
  • 观察到容器立即退出,应用无法访问

原因分析

该问题源于RH SSO容器的启动脚本逻辑:首次启动时,脚本会修改JBoss的配置文件(如添加KeycloakDS数据源),但这些配置修改直接保存在容器内部的文件系统中。当容器停止后再次启动,脚本会重复执行相同的配置操作,导致数据源重复定义,触发启动失败。7.6-25版本虽未在日志中显示明确错误,但本质原因与7.6-10版本一致。

解决方案

1. 使用持久化卷保存配置与数据(推荐)

通过挂载外部Docker卷到容器的配置和数据目录,让首次启动的配置持久化保存,重启时脚本检测到已存在的配置会跳过重复操作。

Docker Run命令修改:

docker run -d -p 8080:8080 \
  -v rh-sso-config:/opt/eap/standalone/configuration \
  -v rh-sso-data:/opt/eap/standalone/data \
  -e SSO_ADMIN_USERNAME=admin \
  -e SSO_ADMIN_PASSWORD=admin \
  registry.redhat.io/rh-sso-7/sso76-openshift-rhel8:7.6-25

Docker Compose配置修改:

rh-sso:
  container_name: rh-sso
  image: registry.redhat.io/rh-sso-7/sso76-openshift-rhel8:7.6-25
  ports:
    - "8080:8080" 
  environment:
    SSO_ADMIN_USERNAME: admin
    SSO_ADMIN_PASSWORD: admin 
  volumes:
    - rh-sso-config:/opt/eap/standalone/configuration
    - rh-sso-data:/opt/eap/standalone/data

volumes:
  rh-sso-config:
  rh-sso-data:

2. 升级至更高版本镜像

Red Hat后续版本可能修复了启动脚本的重复配置问题,尝试升级到7.6系列的更新版本(如7.6-30+)或更高主版本的RH SSO镜像(如7.7及以上)。

3. 自定义镜像修改启动脚本(不推荐)

若无法升级或使用持久化卷,可自定义镜像修改容器内的启动脚本,添加判断逻辑,仅在配置不存在时执行数据源添加操作。此方式需维护自定义镜像,适合特殊场景需求。

内容的提问来源于stack exchange,提问作者drakidou

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:57:34