惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
量子位
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
云风的 BLOG
云风的 BLOG
D
DataBreaches.Net
B
Blog
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
H
Help Net Security
The Cloudflare Blog
U
Unit 42

KOBIN 技术随笔

Mac 系统消除软件更新的通知红点 通过 Docker 部署 Filament 后台管理系统 安装 Uptime Kuma 服务器监控面板 WordPress 站点开启 Nginx FastCGI 页面缓存 将 WordPress 数据库版本从 MySQL 5.5 升级为 8.0 CentOS 7 配置 OpenVPN 客户端 安装 Docker CE 和 DPanel 容器管理面板 利用群晖 Docker 安装 VSCode 代码编辑器 H3C 交换机设置 NTP 时间同步源为阿里云服务器 企业微信提示不支持预览该格式的图片 微星主板台式电脑 BIOS 设置 U 盘启动
搭建 YIcon 字体图标管理平台
KOBIN · 2026-09-07 · via KOBIN 技术随笔

YIcon 是一个集图标上传、展示和使用于一体的字体图标管理平台,由去哪儿网大前端技术中心 YMFE 团队开发。通过 YIcon 可以对企业或团队内部的图标进行统一管理,并为项目提供统一的图标资源服务。

本文介绍了如何通过 Docker 搭建 YIcon 服务,并完成 MySQL、LDAP 等相关服务的配置,实现 YIcon 的私有化部署。

官方网站:https://ued.qunar.com/yicon/index.html
项目地址:https://github.com/YMFE/yicon

安装 Docker CE 和 Docker Compose

在进行操作之前,需要准备 Docker 环境,操作步骤可前往 https://blog.kobin.cn/blog/system/s2/3768.html 进行查看。

搭建 MySQL 数据库

YIcon 需要使用 MySQL 数据库存储用户、图标、项目及版本等相关数据,因此需要先部署 MySQL 数据库服务。

1、创建目录,用于保存 MySQL 数据。

2、创建 Docker Compose 配置文件,其中 MYSQL_ROOT_PASSWORD 用于设置 MySQL 数据库的 root 密码,根据实际情况修改。

3、进入 MySQL 配置目录,拉取镜像。

4、启动 MySQL 服务,并查看容器运行状态。

5、进入 MySQL 容器,输入 root 密码登录数据库。

6、创建一个名为 yicon 的数据库,并使用 utf8mb4 字符集。

准备 YIcon 服务环境

1、创建 YIcon 工作目录。

2、创建 yicon-builder 修复脚本。YIcon 的初始化工具默认使用已经失效的 npm.taobao.org 镜像,该脚本主要用于修复 YIcon 初始化过程中使用的旧版镜像地址。

3、创建 Dockerfile 文件。

  • 使用 node 10 作为基础镜像,以满足 YIcon 对旧版 Node.js 环境的依赖;
  • 由于 Debian Buster 官方软件源已经归档,将软件源修改为 Debian Archive;
  • 安装 YIcon 运行过程中需要使用的基础工具,并通过 npmmirror 安装 yicon-builder;
  • 执行前面创建的 Patch 脚本,修复 yicon-builder 中使用的旧版 npm 镜像地址。

4、创建 Docker Compose 配置文件,该配置包含 YIcon 和 OpenLDAP 两个服务。

其中 LDAP 通过环境变量进行初始化配置,根据实际情况修改组织名称、域名及密码。

  • LDAP_ORGANISATION:LDAP 组织名称;
  • LDAP_DOMAIN:LDAP 域名,用于生成 LDAP 的基础 DN;
  • LDAP_ADMIN_PASSWORD:LDAP 管理员 cn=admin 的密码;
  • LDAP_CONFIG_PASSWORD:LDAP 配置管理员的密码,用于管理 LDAP 服务配置。

配置 LDAP 用户认证

YIcon 支持 cas、sso 或 ldap 三种登录认证方式,本文使用 OpenLDAP 为 YIcon 提供用户认证服务。

1、创建 LDAP 初始化目录。

2、拉取镜像,并启动 LDAP 服务。

3、确认服务正常运行后,进入 LDAP 容器。

4、创建 users 用户组织。

5、创建一个用户名为 admin 的 LDAP 用户。

6、验证刚刚创建的 LDAP 用户登录。

初始化 YIcon 服务

1、进入 YIcon 部署目录,构建镜像,并启动 YIcon 应用服务。

2、进入 YIcon 容器,检查 Node.js 和 npm 版本。

3、执行以下命令启动 YIcon 初始化程序。

4、按照提示完成配置,其中数据库配置根据实际情况修改。

搭建 YIcon 字体图标管理平台

5、进入 YIcon 项目目录,执行启动脚本。

6、服务启动后,通过浏览器访问 http://server-ip:3000 ,进入 YIcon 管理页面。

搭建 YIcon 字体图标管理平台

关联 LDAP 登录认证

将 YIcon 关联到 LDAP 服务器,使创建的 LDAP 用户可以用于登录 YIcon 系统。

1、停止当前运行的容器。

2、编辑 YIcon 配置文件,修改 login 配置。

  • server:LDAP 服务器地址,这里的 ldap 指的是容器服务的名称,无需修改;
  • bindDn:LDAP 管理员账号;
  • baseDn:LDAP 基础目录;
  • bindPassword:LDAP 管理员密码;
  • searchDn:LDAP 用户的搜索路径,{{username}} 会自动替换为登录时输入的用户名。

设置 YIcon 自动启动

修改 Docker Compose 配置,让 YIcon 容器启动后自动运行服务。

1、编辑配置文件, 在 app 服务中添加以下配置。

搭建 YIcon 字体图标管理平台

2、完成配置后启动服务。

3、通过浏览器访问 http://server-ip:3000 ,使用前面创建的 LDAP 用户登录即可。

搭建 YIcon 字体图标管理平台

解决大型 SVG 无法上传的问题

部分 SVG 文件内容较大,超过 YIcon 数据库字段原有的存储长度,上传图标时可能出现「ER_DATA_TOO_LONG: Data too long for column ‘path’ at row 1」错误。

搭建 YIcon 字体图标管理平台

通过将相关字段修改为 LONGTEXT 类型,以支持存储更大的 SVG 内容。

1、进入 MySQL 容器,输入 root 用户密码登录数据库。

2、切换到 YIcon 数据库。

3、修改 SVG 缓存字段,将 caches 表中的 svg 字段修改为 LONGTEXT 。

搭建 YIcon 字体图标管理平台

4、修改图标路径字段,将 icons 表中的 path 字段修改为 LONGTEXT 。

搭建 YIcon 字体图标管理平台

5、完成以上修改后,YIcon 可以支持存储内容更大的 SVG 文件。

本文为原创文章,著作权归作者所有:来自「KOBIN 技术随笔」作者的原创作品,转载请标明出处。
搭建 YIcon 字体图标管理平台
https://blog.kobin.cn/blog/system/s2/3803.html