
如果你使用 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 Issuer是一个Java Web应用,能够为学习者颁发学位、文凭、参与证书或其他教育凭证。它提供多种凭证生成方式,如XLS上传或Web应用创建,生成的凭证XML均遵循Europass学习数据模型。该工具设计为欧洲的学校、学院、大学或培训机构可免费使用,通过电子印章保护凭证安全,生成的凭证可通过电子邮件发送给学习者或直接存入其Europass档案。
适用于欧洲的各类教育机构,包括学校、学院、大学及培训机构,用于为学习者颁发正式的教育凭证,如学位证书、培训结业证书、参与证明等。
EDCI Issuer部署在Tomcat服务器中,默认使用8080端口。最小化配置启动实例的命令如下:
bashdocker run -p 8080:8080 kiceurope/issuer
此命令将使用默认的本地主机配置启动容器。如需修改配置,需创建配置文件卷。
EDCI Issuer的配置存储在一系列属性文件中,如需修改配置,需更改这些属性并重启Web应用。默认配置目录为$CATALINA_HOME/conf/edci/issuer,永久修改配置的方式有两种:
kiceurope/issuer构建自定义镜像容器启动后会将默认配置复制到目录中,因此即使挂载了卷,只有当配置文件不存在时才会复制默认配置。建议通过挂载配置卷、修改配置并重启容器来测试配置变更。
其他有用的卷:
$CATALINA_HOME/logs,挂载该卷可保留日志$CATALINA_HOME/temp/credentials,挂载该卷有助于调试启动启用所有三个卷的命令示例:
bashdocker run -p 8080:8080 -v /opt/issuer:/usr/local/tomcat/conf/edci/issuer -v /opt/logs:/usr/local/tomcat/logs -v /opt/credentials:/usr/local/tomcat/temp/credentials kiceurope/issuer
以下可选环境变量用于启用JPDA调试和等待依赖主机:
| 变量 | 描述 |
|---|---|
| JPDA_ENABLED | 启用JPDA以进行调试/开发 |
| JPDA_TRANSPORT | 定义JPDA传输方式,推荐使用dt_socket |
| JPDA_ADDRESS | 定义JPDA端口,启用时需将该端口暴露给主机 |
| WAIT_FOR_HOST | 定义启动容器前需等待的主机,主要用于Docker化依赖 |
| WAIT_FOR_PORT | 与WAIT_FOR_HOST配合使用,指定需等待的主机端口 |
| WAIT_FOR_TIMEOUT | 最大等待时间(秒),超时后停止等待 |
EDCI Issuer需要以下外部依赖:
issuer.properties文件中配置数据库属性security.properties和issuer_front.properties配置文件使用模拟用户issuer.properties和issuer_front.properties文件中配置EDCI Viewer实例以支持预览功能issuer.properties文件中配置EDCI Wallet实例,以便将凭证颁发到***OIDC提供者需使用正确的主机名,如在Docker内部运行,可使用host.docker.internal URL指向身份提供者。
EDCI生态系统由EDCI Issuer、EDCI Wallet和EDCI Viewer组成,还需数据库和身份提供者以实现完整功能。建议使用docker-compose文件简化容器间通信。
完整docker-compose示例:
yamlversion: "3.0" services: mysqldb: image: 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.io/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: 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: 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: 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
此示例使用MySQL数据库和Keycloak服务器,与Issuer、Viewer和Wallet应用配合。所有EDCI应用均配置了JPDA以支持调试。注意,所有EDCI容器均安装了wait-for-it脚本,可使用WAIT_FOR_XX环境变量等待相关依赖。Keycloak需启用细粒度授权和令牌交换功能,以支持Viewer和Wallet的交互。容器间内部调用需使用内部服务名(issuer/wallet/viewer),而Keycloak需通过host.docker.internal URL或适当域名访问。
首次启动EDCI生态系统时,不同应用和依赖的用户及数据库使用默认密码。强烈建议通过CLI访问容器或使用数据库管理工具修改数据库中的“changeMe”密码,并在docker-compose文件中更新密码。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务