
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文件中更新密码。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务