
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该镜像是OpenUnison的基础“构建器”镜像,旨在与https://github.com/openshift/source-to-image/blob/master/docs/builder_image.md#required-image-contents%EF%BC%88S2I%EF%BC%89%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8%E3%80%82
S2I使用源代码和构建器Docker镜像生成新的Docker镜像。顾名思义,Source-To-Image负责将应用源代码转换为可执行Docker镜像。构建器镜像包含生成该可执行镜像所需的特定工具和逻辑。
有关如何使用和创建S2I构建器镜像的更多信息,请参见:[***]
OpenUnison是Tremolo Security([***]
文档可访问:[***]
要将此镜像与S2I配合使用,必须向s2i脚本传递以下之一:
本文档对部署做以下假设,下一节将详细介绍每个假设:
OpenUnison构建流程遵循简单的工作流,使用Apache Maven和覆盖插件将特定配置与标准OpenUnison构建结合,生成特定于部署的WAR文件,然后集成到最终容器镜像中。
!OpenUnison构建 diagram
Tremolo Security的GitHub仓库中提供了多个快速启动项目 - https://github.com/TremoloSecurity?utf8=%E2%9C%93&q=openunison-qs&type=&language=%E3%80%82%E6%AF%8F%E4%B8%AA%E9%A1%B9%E7%9B%AE%E9%83%BD%E6%9C%89%E8%87%AA%E5%B7%B1%E7%9A%84%E9%85%8D%E7%BD%AE%E5%8F%98%E9%87%8F%E5%92%8C%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6%E3%80%82%E6%9C%AC%E6%96%87%E6%A1%A3%E4%BD%BF%E7%94%A8https://github.com/TremoloSecurity/openunison-qs-simple%E3%80%82
首先,克隆快速启动GitHub仓库:
bash$ git clone https://github.com/myusername/openunison-qs-simple.git
接下来,创建用于存放配置文件的目录:
bash$ mkdir local $ cd local
创建密钥库和TLS密钥
注意:确保密钥密码与密钥库密码相同
bash$ keytool -genkeypair -storetype PKCS12 -alias unison-tls -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keystore ./unisonKeyStore.p12 -validity 3650 Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: localhost.localdomain What is the name of your organizational unit? [Unknown]: demo What is the name of your organization? [Unknown]: demo What is the name of your City or Locality? [Unknown]: demo What is the name of your State or Province? [Unknown]: demo What is the two-letter country code for this unit? [Unknown]: demo Is CN=localhost.localdomain, OU=demo, O=demo, L=demo, ST=demo, C=demo correct? [no]: yes Enter key password for <unison-tls> (RETURN if same as keystore password):
创建OpenUnison会话密钥
注意:确保密钥密码与密钥库密码相同
bash$ keytool -genseckey -alias session-unison -keyalg AES -keysize 256 -storetype PKCS12 -keystore ./unisonKeyStore.p12
使用以下示例作为模板创建名为ou.env的文件。在相应行输入上述步骤中创建密钥库/密钥时使用的密码。
ou.env文件
propertiesOU_HOST=localhost.localdomain TEST_USER_NAME=testuser TEST_USER_PASSWORD=secret_password unisonKeystorePassword=start123 unisonKeystorePath=/etc/openunison/unisonKeyStore.p12
使用以下示例作为模板创建openunison.yaml文件:
注意:不要修改以下openunison.yaml文件中的路径值。此文件中的配置更改应仅限于TLS配置(如修改密码套件、添加客户端认证等)。
openunison.yaml
yaml--- open_port: 8080 open_external_port: 80 secure_port: 8443 secure_external_port: 443 secure_key_alias: "unison-tls" force_to_secure: true activemq_dir: "/tmp/amq" quartz_dir: "/tmp/quartz" client_auth: none allowed_client_names: [] ciphers: - TLS_RSA_WITH_RC4_128_SHA - TLS_RSA_WITH_AES_128_CBC_SHA - TLS_RSA_WITH_AES_256_CBC_SHA - TLS_RSA_WITH_3DES_EDE_CBC_SHA - TLS_RSA_WITH_AES_128_CBC_SHA256 - TLS_RSA_WITH_AES_256_CBC_SHA256 path_to_deployment: "/usr/local/openunison/work" path_to_env_file: "/etc/openunison/ou.env"
在构建容器镜像之前,下载适用于您平台的S2I二进制文件并添加到PATH - https://github.com/openshift/source-to-image/releases
构建容器镜像:
bash$ s2i build /path/to/my/root/myproject tremolosecurity/openunisons2idocker local/openunison
将创建名为local/openunison的镜像并添加到本地Docker实例。该镜像包含OpenUnison和您的配置。使用以下命令启动容器,确保将/path/to/local替换为您环境中的实际路径:
bash$ docker run -p 8443:8443 -v /path/to/local:/etc/openunison:Z -e JAVA_OPTS='-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' --name openunison local/openunison
OpenUnison现在应已运行。通过访问https://localhost.localdomain:8443/,使用用户名`testuser`和密码`secret_password`(或ou.env文件中使用的值,如果与示例不同)登录:
!OpenUnison登录页面
登录后:
!OpenUnison登录后页面
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务