Docker部署Chemex资产管理系统
Chemex 是一个开源的、轻量且高颜值的信息资产管理系统。系统基于 Laravel 开发,数据库支持 MySQL/MariaDB。
Chemex 是个标准的 Laravel应用程序,也适用于所有的 LNMP/WNMP/DNMP 环境,虽然部署方式有很多,但仍然强烈建议使用 Docker 方式部署。
Docker 部署方式不会建立数据库容器,也意味着你必须有一个已有的数据库,在启动 chemex 时候通过参数注入的方式连接数据库。
首先需要下载Chemex的映像
docker pull celaraze/chemex:latest
然后在Docker中安装Chemex,并配置数据库
docker run -itd --restart=always -p 60001:80 -e DB_HOST=172.19.64.1 -e DB_PORT=3306 -e DB_DATABASE=chemex -e DB_USERNAME=root -e DB_PASSWORD=root -e INSTALL=true celaraze/chemex
即可通过 http://localhost:60001
访问 chemex,初始账号密码:admin/admin。
在安装Chemex出现的问题
1、数据库使用宿主机中的MySQL,数据库主机地址是什么
由于安装时使用Windows环境下的Docker,使用ipconfig查看IP地址
D:\docker-workspace\chemex-v3.7.0>ipconfig
Windows IP 配置 以太网适配器 以太网: 媒体状态 . . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . . . . . . . : ufe.edu.cn 以太网适配器 vEthernet (WSL): 连接特定的 DNS 后缀 . . . . . . . : 本地链接 IPv6 地址. . . . . . . . : fe80::9c09:1d36:e7ca:4e62%52 IPv4 地址 . . . . . . . . . . . . : 172.19.64.1 子网掩码 . . . . . . . . . . . . : 255.255.240.0 默认网关. . . . . . . . . . . . . : 以太网适配器 以太网 2: 媒体状态 . . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . . . . . . . : 无线局域网适配器 本地连接* 1: 媒体状态 . . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . . . . . . . : 无线局域网适配器 本地连接* 2: 媒体状态 . . . . . . . . . . . . : 媒体已断开连接 连接特定的 DNS 后缀 . . . . . . . : 无线局域网适配器 WLAN:
注意显示信息中的“以太网适配器 vEthernet (WSL):”,其中显示的IP地址就是宿主机的地址,其中IPv4地址是172.19.64.1,这个地址就是Docker容器访问宿主机的IP地址。
2、必须在MySQL中提前创建好数据库,数据库名为chemex,字符集为utf8mb4,否则Docker映像启动后连接不到数据库
docker 连接数据库报错Illuminate\Database\QueryException SQLSTATE[HY000] [1130] Host,......
使用Navicat修改 mysql.user表中user 对应的 Host 为%
再使用Navicat命令行刷新mysql权限: flush privileges
3、运行Docker映像的参数必须指定安装属性,即指定参数-e INSTALL=true
不指定此参数启动映像后数据库中的数据为空,系统用户admin不存在,无法登录系统