









YIcon 是一个集图标上传、展示和使用于一体的字体图标管理平台,由去哪儿网大前端技术中心 YMFE 团队开发。通过 YIcon 可以对企业或团队内部的图标进行统一管理,并为项目提供统一的图标资源服务。
本文介绍了如何通过 Docker 搭建 YIcon 服务,并完成 MySQL、LDAP 等相关服务的配置,实现 YIcon 的私有化部署。
官方网站:https://ued.qunar.com/yicon/index.html
项目地址:https://github.com/YMFE/yicon
在进行操作之前,需要准备 Docker 环境,操作步骤可前往 https://blog.kobin.cn/blog/system/s2/3768.html 进行查看。
YIcon 需要使用 MySQL 数据库存储用户、图标、项目及版本等相关数据,因此需要先部署 MySQL 数据库服务。
1、创建目录,用于保存 MySQL 数据。
2、创建 Docker Compose 配置文件,其中 MYSQL_ROOT_PASSWORD 用于设置 MySQL 数据库的 root 密码,根据实际情况修改。
3、进入 MySQL 配置目录,拉取镜像。
4、启动 MySQL 服务,并查看容器运行状态。
5、进入 MySQL 容器,输入 root 密码登录数据库。
6、创建一个名为 yicon 的数据库,并使用 utf8mb4 字符集。
1、创建 YIcon 工作目录。
2、创建 yicon-builder 修复脚本。YIcon 的初始化工具默认使用已经失效的 npm.taobao.org 镜像,该脚本主要用于修复 YIcon 初始化过程中使用的旧版镜像地址。
3、创建 Dockerfile 文件。
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 服务配置。YIcon 支持 cas、sso 或 ldap 三种登录认证方式,本文使用 OpenLDAP 为 YIcon 提供用户认证服务。
1、创建 LDAP 初始化目录。
2、拉取镜像,并启动 LDAP 服务。
3、确认服务正常运行后,进入 LDAP 容器。
4、创建 users 用户组织。
5、创建一个用户名为 admin 的 LDAP 用户。
6、验证刚刚创建的 LDAP 用户登录。
1、进入 YIcon 部署目录,构建镜像,并启动 YIcon 应用服务。
2、进入 YIcon 容器,检查 Node.js 和 npm 版本。
3、执行以下命令启动 YIcon 初始化程序。
4、按照提示完成配置,其中数据库配置根据实际情况修改。

5、进入 YIcon 项目目录,执行启动脚本。
6、服务启动后,通过浏览器访问 http://server-ip:3000 ,进入 YIcon 管理页面。

将 YIcon 关联到 LDAP 服务器,使创建的 LDAP 用户可以用于登录 YIcon 系统。
1、停止当前运行的容器。
2、编辑 YIcon 配置文件,修改 login 配置。
server:LDAP 服务器地址,这里的 ldap 指的是容器服务的名称,无需修改;bindDn:LDAP 管理员账号;baseDn:LDAP 基础目录;bindPassword:LDAP 管理员密码;searchDn:LDAP 用户的搜索路径,{{username}} 会自动替换为登录时输入的用户名。修改 Docker Compose 配置,让 YIcon 容器启动后自动运行服务。
1、编辑配置文件, 在 app 服务中添加以下配置。

2、完成配置后启动服务。
3、通过浏览器访问 http://server-ip:3000 ,使用前面创建的 LDAP 用户登录即可。

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

通过将相关字段修改为 LONGTEXT 类型,以支持存储更大的 SVG 内容。
1、进入 MySQL 容器,输入 root 用户密码登录数据库。
2、切换到 YIcon 数据库。
3、修改 SVG 缓存字段,将 caches 表中的 svg 字段修改为 LONGTEXT 。

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

5、完成以上修改后,YIcon 可以支持存储内容更大的 SVG 文件。
本文为原创文章,著作权归作者所有:来自「KOBIN 技术随笔」作者的原创作品,转载请标明出处。
搭建 YIcon 字体图标管理平台
https://blog.kobin.cn/blog/system/s2/3803.html
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。