
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像运行One Identity Manager API Server实例。它在启动时从配置的数据库下载必要文件,其行为可通过密钥值和环境变量控制。
所有标记为windows-amd64的镜像均兼容Windows Server主机。请使用下文列出的标签检查各标签支持的Windows Server版本。
所有标记为linux-amd64的镜像均兼容Linux操作系统主机。
latest, 9.3, 9.2, 9.1, 9.0, 8.2, windows-amd64-9.2-windowsservercore-ltsc2022, windows-amd64-9.1-windowsservercore-ltsc2022, windows-amd64-9.0-windowsservercore-ltsc2022, windows-amd64-8.2-windowsservercore-ltsc2022, windows-amd64-latest-windowsservercore-ltsc2022latest, 9.3, 9.2, 9.1, 9.0, 8.2, windows-amd64-9.2-windowsservercore-ltsc2019, windows-amd64-9.1-windowsservercore-ltsc2019, windows-amd64-9.0-windowsservercore-ltsc2019, windows-amd64-8.2-windowsservercore-ltsc2019, windows-amd64-latest-windowsservercore-ltsc20199.2, 9.1, 9.0, 8.2, windows-amd64-9.2-windowsservercore-ltsc2016, windows-amd64-9.1-windowsservercore-ltsc2016, windows-amd64-9.0-windowsservercore-ltsc2016, windows-amd64-8.2-windowsservercore-ltsc2016latest, 9.3, 9.2, 9.1, 9.0, 8.2, linux-amd64-9.2, linux-amd64-9.1, linux-amd64-9.0, linux-amd64-8.2, linux-amd64-latestLinux镜像免责声明
请注意,并非Identity Manager的所有功能在Linux容器中都受支持。 Identity Manager < 9.3运行在Mono上,且并非所有底层组件在Mono中都可用。
Identity Manager 9.3运行在.NET 8上,且并非所有底层组件在Linux上的.NET 8中都兼容。
注意: 在Linux上,API服务器镜像不会自动更新。当
QBMFileRevision的条目因更新或迁移而更改时,您必须启动新实例。
Web.config
Web.config文件配置API服务器的所有设置。容器会探测两个位置以查找Web.config文件:
Windows
C:\ProgramData\Docker\secrets\Web.config:如果存在此文件,将直接使用,不会用环境变量替换任何占位符。可使用以下命令创建Web.config模板:
powershell$P = $PWD.Path.Replace("\", "/") $VERSION = "latest" docker run -it --rm ` -v $P:C:/Data ` -e "CONNSTRING=Data Source=..." ` -e "UPDATEPWD=..." ` -e BASEURL=http://localhost:9999/ ` -e APPSERVERCONNSTRING=URL=http://localhost/AppServer ` oneidentity/oneim-api:$VERSION ` --createwebcfg C:\data
或者,连接字符串可来自密钥文件夹,且web.config可立即放置在那里:
powershell$P = $PWD.Path.Replace("\", "/") $VERSION = "latest" docker run -it --rm ` -v $P/secrets:C:/ProgramData/Docker/secrets ` -e BASEURL=http://localhost:9999/ ` oneidentity/oneim-api:$VERSION ` --createwebcfg C:/ProgramData/Docker/secrets
注意: 在生成web.config以及启动使用所创建web.config的容器期间,您需要指定相同的
UPDATEACCOUNT和UPDATEPWD值。
容器使用其模板,并使用密钥值或环境变量替换以下值:
| 替换模式 | 密钥值 | 环境变量 | 说明 |
|---|---|---|---|
#FACTORY# | C:\ProgramData\Docker\secrets\DBSYSTEM | DBSYSTEM | 值取决于DBSYSTEM值,但包含具体的数据库工厂类 |
#CONNSTR# | C:\ProgramData\Docker\secrets\CONNSTRING | CONNSTRING | |
%HDB_NAME_1% | C:\ProgramData\Docker\secrets\HDBNAME1 | HDBNAME1 | |
%HDB_CONNECTION_1% | C:\ProgramData\Docker\secrets\HDBCONN1 | HDBCONN1 | |
%HDB_NAME_2% | C:\ProgramData\Docker\secrets\HDBNAME2 | HDBNAME2 | |
%HDB_CONNECTION_2% | C:\ProgramData\Docker\secrets\HDBCONN2 | HDBCONN2 | |
%HDB_NAME_3% | C:\ProgramData\Docker\secrets\HDBNAME3 | HDBNAME3 | |
%HDB_CONNECTION_3% | C:\ProgramData\Docker\secrets\HDBCONN3 | HDBCONN3 | |
#TARGETS# | TARGETS | ||
#BASEURL# | C:\ProgramData\Docker\secrets\BASEURL | BASEURL | |
#ROOTDIR# | SRV_HOME | ||
#APPSERVERCONNSTRING# | C:\ProgramData\Docker\secrets\APPSERVERCONNSTRING | APPSERVERCONNSTRING | |
#UPDATEUSER# | C:\ProgramData\Docker\secrets\UPDATEUSER | UPDATEUSER | |
#APPLICATIONTOKEN# | C:\ProgramData\Docker\secrets\APPLICATIONTOKEN | APPLICATIONTOKEN | |
#FORCEAPPTOKEN# | FORCEAPPTOKEN | ||
#APPINSIGHTS_KEY# | C:\ProgramData\Docker\secrets\APPINSIGHTS_KEY | APPINSIGHTS_KEY | |
#APPINSIGHTS_LOGLEVEL# | C:\ProgramData\Docker\secrets\APPINSIGHTS_LOGLEVEL | APPINSIGHTS_LOGLEVEL | |
#LOG_TENANT# | C:\ProgramData\Docker\secrets\LOG_TENANT | LOG_TENANT | |
#FILE_LOGLEVEL# | C:\ProgramData\Docker\secrets\FILE_LOGLEVEL | FILE_LOGLEVEL | |
#TRUSTEDSOURCEKEY# | C:\ProgramData\Docker\secrets\TRUSTEDSOURCEKEY | TRUSTEDSOURCEKEY | |
#REGISTRATIONUSER# | C:\ProgramData\Docker\secrets\REGISTRATIONUSER | REGISTRATIONUSER | |
#ONELOGINAPI# | C:\ProgramData\Docker\secrets\ONELOGINAPI | ONELOGINAPI | |
#SUPPORTREADSCALEOUT# | C:\ProgramData\Docker\secrets\SUPPORTREADSCALEOUT | SUPPORTREADSCALEOUT |
密钥值优先于环境变量。
Linux
/run/secrets/web.config:如果存在此文件,将直接使用,不会用环境变量替换任何占位符。可使用以下命令创建web.config模板:
shVERSION=latest docker run -it --rm -v $PWD:/data -e "CONNSTRING=Data Source=..." -e BASEURL=http://localhost:9999/ -e APPSERVERCONNSTRING=URL=http://localhost/AppServer oneidentity/oneim-api:linux-amd64-$VERSION --createwebcfg /data
或者,连接字符串可来自密钥文件夹,且web.config可立即放置在那里:
shVERSION=latest docker run -it --rm -v $PWD/secrets:/run/secrets -e BASEURL=http://localhost:9999/ oneidentity/oneim-api:linux-amd64-$VERSION --createwebcfg /run/secrets
容器使用其模板,并使用密钥值或环境变量替换以下值:
| 替换模式 | 密钥值 | 环境变量 | 说明 |
|---|---|---|---|
#FACTORY# | /run/secrets/DBSYSTEM | DBSYSTEM | 值取决于DBSYSTEM值,但包含具体的数据库工厂类 |
#CONNSTR# | /run/secrets/CONNSTRING | CONNSTRING | |
%HDB_NAME_1% | /run/secrets/HDBNAME1 | HDBNAME1 | |
%HDB_CONNECTION_1% | /run/secrets/HDBCONN1 | HDBCONN1 | |
%HDB_NAME_2% | /run/secrets/HDBNAME2 | HDBNAME2 | |
%HDB_CONNECTION_2% | /run/secrets/HDBCONN2 | HDBCONN2 | |
%HDB_NAME_3% | /run/secrets/HDBNAME3 | HDBNAME3 | |
%HDB_CONNECTION_3% | /run/secrets/HDBCONN3 | HDBCONN3 | |
#TARGETS# | TARGETS | ||
#BASEURL# | /run/secrets/BASEURL | BASEURL | |
#ROOTDIR# | SRV_HOME | ||
#APPSERVERCONNSTRING# | /run/secrets/APPSERVERCONNSTRING | APPSERVERCONNSTRING | |
#UPDATEUSER# | /run/secrets/UPDATEUSER | UPDATEUSER | |
#APPLICATIONTOKEN# | /run/secrets/APPLICATIONTOKEN | APPLICATIONTOKEN | |
#FORCEAPPTOKEN# | FORCEAPPTOKEN | ||
#APPINSIGHTS_KEY# | /run/secrets/APPINSIGHTS_KEY | APPINSIGHTS_KEY | |
#APPINSIGHTS_LOGLEVEL# | /run/secrets/APPINSIGHTS_LOGLEVEL | APPINSIGHTS_LOGLEVEL | |
#LOG_TENANT# | /run/secrets/LOG_TENANT | LOG_TENANT | |
#CONSOLE_LOGLEVEL# | /run/secrets/CONSOLE_LOGLEVEL | CONSOLE_LOGLEVEL | |
#TRUSTEDSOURCEKEY# | /run/secrets/TRUSTEDSOURCEKEY | TRUSTEDSOURCEKEY | |
#REGISTRATIONUSER# | /run/secrets/REGISTRATIONUSER | REGISTRATIONUSER | |
#ONELOGINAPI# | /run/secrets/ONELOGINAPI | ONELOGINAPI | |
#SUPPORTREADSCALEOUT# | /run/secrets/SUPPORTREADSCALEOUT | SUPPORTREADSCALEOUT |
密钥值优先于环境变量。
会话证书(Session certificate)
用于加密会话信息的证书将在以下位置查找:
C:\ProgramData\Docker\secrets\SessionCertificate.pfx/run/secrets/SessionCertificate.pfx以下文件夹:
C:\ProgramData\Docker\secrets\/run/secrets可挂载为卷,其中可放置同名的现有证书;如果文件夹可写,服务将尝试在该位置创建新证书。
会话证书需要在API服务器实例之间共享,以便在API服务器更新后或在API服务器集群中重新打开会话。
Windows
可通过以下命令创建会话证书:
powershell$P = $PWD.Path.Replace("\", "/") $VERSION = "latest' docker run -it --rm -v $P/secrets:C:/Data oneidentity/oneim-api:$VERSION --createcert C:\Data
或使用PowerShell:
powershell$outfile = "Path\to\SessionCertificate.pfx" $date = (Get-Date).Date.AddDays(1000) $cert = New-SelfSignedCertificate ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -HashAlgorithm SHA1 ` -KeyExportPolicy Exportable ` -NotAfter $date ` -Subject "CN=API Server" ` -Type DocumentEncryptionCert [System.IO.File]::WriteAllBytes( ` $outfile, ` $cert.Export( ` [System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, ` $null))
Linux
可通过以下命令创建会话证书:
shVERSION=latest docker run -it --rm -v $PWD:/data oneidentity/oneim-api:linux-amd64-$VERSION --createcert /data
或使用OpenSSL:
shopenssl genrsa 2048 > private.pem openssl req -x509 -sha1 -days 1000 -new -subj "/CN=API Server" -key private.pem -out public.pem openssl pkcs12 -export -in public.pem -inkey private.pem -password pass: -out config/SessionCertificate.pfx
DBSYSTEM
要在安装和运行时连接的数据库或应用服务器系统。有效值为:
MSSQL:Microsoft SQL ServerAPPSERVER:通过应用服务器连接如果未提供DBSYSTEM值,默认使用MSSQL。
可在密钥文件夹中提供。
CONNSTRING
用于连接系统的连接字符串。此参数为必填项。内容取决于所用的数据库系统。
不同系统的连接字符串示例:
MSSQL:
connectionstringData Source=[Server];Initial Catalog=[DB];User ID=[User];Password=[Password]
APPSERVER:
connectionstringUrl=https://my.app.server/
可在密钥文件夹中提供。
APPSERVERCONNSTRING
如果主连接使用直接Microsoft SQL Server连接,则为附加的应用服务器连接字符串。当DBSYSTEM等于MSSQL时,此参数为必填项。
connectionstringUrl=https://my.app.server/
可在密钥文件夹中提供。
TARGETS
要安装的部署目标的逗号分隔列表。默认目标为:Server\Web\BusinessAPIServer。
UPDATEUSER
用于自动更新处理和在启动期间创建QBMWebApplication条目的用户的身份验证字符串。
可在密钥文件夹中提供。
BASEURL
用于创建(如不存在)和使用QBMWebApplication条目的标识符。
可
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务