
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
EDCI Wallet是一个无状态REST API服务(eu.europa.ec.empl.edci.dss.service),主要用于接收、存储和提供凭证。它还能验证凭证或可验证展示的签名与格式,并创建和管理这些凭证或可验证展示的临时共享链接。该镜像将EDCI Wallet部署在Tomcat服务器上,默认使用8080端口。
EDCI Wallet部署在Tomcat服务器上,默认使用8080端口。最基本的启动命令如下:
bashdocker run -p 8080:8080 docker.xuanyuan.run/kiceurope/wallet
此命令将使用默认的本地主机配置启动容器。如需修改配置,需创建配置文件的卷挂载。
EDCI Wallet的配置存储在一系列属性文件中,修改配置后需重启Web应用。默认配置目录为$CATALINA_HOME/conf/edci/wallet,永久修改配置的方式有两种:
kiceurope/wallet构建自定义镜像容器启动后会将默认配置复制到配置目录,除非目录中已存在配置文件。因此,最佳实践是挂载配置卷,修改配置后重启容器。
另一个有用的卷是Tomcat的日志目录$CATALINA_HOME/logs,挂载后可持久化日志。
同时挂载配置和日志卷的启动命令示例:
bashdocker run -p 8080:8080 -v /opt/wallet:/usr/local/tomcat/wallet -v /opt/logs:/usr/local/tomcat/logs docker.xuanyuan.run/kiceurope/wallet
以下可选环境变量用于启用JPDA调试和等待依赖主机:
| 变量名 | 描述 |
|---|---|
| JPDA_ENABLED | 启用JPDA以进行调试/开发 |
| JPDA_TRANSPORT | 定义JPDA传输方式,推荐使用dt_socket |
| JPDA_ADDRESS | 定义JPDA端口,启用时需将该端口暴露给主机 |
| WAIT_FOR_HOST | 定义启动前需等待的主机,主要用于依赖的容器化服务 |
| WAIT_FOR_PORT | 需等待的主机端口,使用WAIT_FOR_HOST时必须指定 |
| WAIT_FOR_TIMEOUT | 最大等待时间(秒),超时后启动失败 |
EDCI Wallet需要以下外部依赖:
wallet.properties中配置,以启用导出功能OIDC提供商需使用正确的主机名。若在Docker内部运行身份提供商,可使用host.docker.internal URL指向身份提供商。
EDCI生态系统由EDCI Issuer、EDCI Wallet和EDCI Viewer组成,还需要数据库和身份提供商以实现完整功能。建议使用docker-compose管理容器间通信。
完整的docker-compose示例:
yamlversion: "3.0" services: mysqldb: image: docker.xuanyuan.run/kiceurope/mysqldb container_name: mysqldb build: configuration/docker/mysql/ environment: - MYSQL_ROOT_PASSWORD=changeMe - MYSQL_USER=edci - MYSQL_PASSWORD=changeMe volumes: - "C://Dev/EDCI/dockers/docker_mysql/datadir:/var/lib/mysql" ports: - 3307:3306 - 33060:33060 healthcheck: test: ["CMD-SHELL", 'mysqladmin ping'] timeout: 5s retries: 6 keycloak: image: ***-quay.xuanyuan.run/keycloak/keycloak container_name: keycloak command: start-dev environment: - KEYCLOAK_ADMIN=admin - KEYCLOAK_ADMIN_PASSWORD=changeMe - KC_DB=mysql - KC_DB_URL=jdbc:mysql://mysqldb:3306/keycloak - KC_DB_USERNAME=keycloak - KC_DB_PASSWORD=changeMe - KC_FEATURES=token-exchange,admin-fine-grained-authz ports: - "9000:8080" depends_on: mysqldb: condition: service_healthy issuer: image: docker.xuanyuan.run/kiceurope/issuer container_name: issuer user: edci build: edci-issuer/ environment: - JPDA_ENABLED=true - JPDA_TRANSPORT=dt_socket - JPDA_ADDRESS=8000 - WAIT_FOR_HOST=mysqldb - WAIT_FOR_PORT=3306 - WAIT_FOR_TIMEOUT=60 volumes: - "C://Dev/EDCI/dockers/docker_issuer/issuer:/usr/local/tomcat/conf/edci/issuer" - "C://Dev/EDCI/dockers/docker_issuer/credentials:/usr/local/tomcat/temp/credentials" - "C://Dev/EDCI/dockers/docker_issuer/logs:/usr/local/tomcat/logs" ports: - "8383:8080" - "9383:8000" depends_on: mysqldb: condition: service_healthy wallet: image: docker.xuanyuan.run/kiceurope/wallet container_name: wallet user: edci build: edci-wallet/ environment: - JPDA_ENABLED=true - JPDA_TRANSPORT=dt_socket - JPDA_ADDRESS=8000 - WAIT_FOR_HOST=mysqldb - WAIT_FOR_PORT=3306 - WAIT_FOR_TIMEOUT=60 volumes: - "C://Dev/EDCI/dockers/docker_wallet/wallet:/usr/local/tomcat/conf/edci/wallet" - "C://Dev/EDCI/dockers/docker_wallet/logs:/usr/local/tomcat/logs" ports: - "8181:8080" - "9181:8000" depends_on: mysqldb: condition: service_healthy viewer: image: docker.xuanyuan.run/kiceurope/viewer container_name: viewer user: edci build: edci-viewer/ environment: - JPDA_ENABLED=true - JPDA_TRANSPORT=dt_socket - JPDA_ADDRESS=8000 - WAIT_FOR_HOST=mysqldb - WAIT_FOR_PORT=3306 - WAIT_FOR_TIMEOUT=60 volumes: - "C://Dev/EDCI/dockers/docker_viewer/viewer:/usr/local/tomcat/conf/edci/viewer" - "C://Dev/EDCI/dockers/docker_viewer/logs:/usr/local/tomcat/logs" ports: - "8282:8080" - "9282:8000" depends_on: mysqldb: condition: service_healthy
注意:
wait-for-it脚本,可通过WAIT_FOR_*环境变量等待依赖服务token-exchange和admin-fine-grained-authz特性,以支持Viewer和Wallet的交互issuer/wallet/viewer),Keycloak需通过host.docker.internal或正确域名访问首次启动EDCI生态系统时,各应用和依赖的数据库用户使用默认密码(如示例中的changeMe)。强烈建议:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务