
mobiusoffice/evergreen-ils本项目发布Evergreen各版本的Docker容器,提供自包含的Ubuntu 16.04/18.04/20.04/22.04/24.04服务器环境,内置PostgreSQL 9.5/9.6/10/15数据库。包含Web版员工客户端及XUL Runner员工客户端(3.2版本前)。Evergreen全局管理员账户默认凭据:admin/demo123。
运行容器时需映射以下端口:
| 用途 | Docker参数 |
|---|---|
| 标准Web服务 | -p 80:80 |
| 标准SSL服务 | -p 443:443 |
| SIP服务 | -p 6001:6001 |
| Z39.50服务 | -p 210:210 |
| SSH服务 | -p 32:22 |
| PostgreSQL数据库 | -p 5433:5432 |
需为容器指定主机名,避免Docker自动生成。若自动生成的主机名以数字开头,OpenSRF将无法启动。
bashdocker run -it -p 80:80 -p 443:443 -p 210:210 -p 6001:6001 -p 32:22 -p 5433:5432 -h app.evergreen.com mobiusoffice/evergreen-ils
容器运行后,Ansible脚本将自动执行,最终显示:
PLAY RECAP ********************************************************************* 127.0.0.1 : ok=74 changed=53 unreachable=0 failed=0
看到以上信息表示服务器已设置完成,可接受连接。注意:按CTRL+C会终止服务器,应使用CTRL+pq使容器在后台运行。
Docker容器的SSH登录默认凭据:user/password
Evergreen全局管理员账户默认凭据:admin/demo123
创建镜像的Git仓库:Github项目
已停止ejabberd开发容器,仅保留Redis开发容器。
开发容器用于将本地Evergreen Git仓库注入容器,实时反映代码更改至服务器环境。
bashdocker run -it -p 80:80 -p 443:443 -p 210:210 -p 6001:6001 -p 32:22 -p 5433:5432 -v /home/user/Evergreen:/home/opensrf/repos/Evergreen -h test.evergreen.com mobiusoffice/evergreen-ils:dev
bashdocker run -it -p 80:80 -p 443:443 -p 210:210 -p 6001:6001 -p 32:22 -p 5433:5432 -v //c/users/blake/Documents/GitHub/Evergreen:/home/opensrf/repos/Evergreen -h test.evergreen.com mobiusoffice/evergreen-ils:dev
开发容器(evergreen-ils:dev)需挂载本地文件系统,以便在本地编辑Evergreen文件。需先克隆Evergreen Git仓库至本地,通过-v参数将文件夹路径传入docker run命令(见上文示例,需根据实际路径修改)。
容器会将本地Evergreen仓库中的文件符号链接至服务器环境的多个目录,具体映射如下:
| 本地路径 | 目标路径 |
|---|---|
| /home/opensrf/repos/Evergreen/Open-ILS/web/js/ui/default/staff | /openils/var/web/js/ui/default/staff |
| /home/opensrf/repos/Evergreen/Open-ILS/web/eg2 | /openils/var/web/eg2 |
| /home/opensrf/repos/Evergreen/Open-ILS/src/perlmods/lib/OpenILS | /usr/local/share/perl/5.34.0/OpenILS |
| /home/opensrf/repos/Evergreen/Open-ILS/web/opac/deps | /openils/var/web/opac/deps |
| /home/opensrf/repos/Evergreen/Open-ILS/src/templates | /openils/var/templates |
| /home/opensrf/repos/Evergreen/Open-ILS/src/templates-bootstrap | /openils/var/templates-bootstrap |
容器运行时,在Evergreen Git仓库根目录创建名为eg_restart_go的文件,容器的定时任务(每分钟执行)会检测到此文件,删除文件并重启Evergreen服务栈(包括Ejabberd)。重启输出日志保存在eg_restart_go_screenoutput文件中。
在Evergreen Git仓库根目录创建名为eg_rebuild_angular的文件,容器会触发Angular客户端重建。重建过程约需1分钟,输出日志保存在eg_rebuild_angular_screenoutput文件中。
容器运行时,通过Evergreen文件夹根目录的db_control.txt文件(空格分隔的三列)配置数据库:
| 列1 | 列2 | 列3 |
|---|---|---|
| database_name | database_type | use_this_flag (*) |
初始文件内容:
evergreen standard * evergreen_enhanced enhanced
将*移至第二行,容器会自动更新OpenSRF配置指向新数据库并重启服务。可添加多行(无*),容器会根据指定类型(standard/enhanced)在PostgreSQL中创建数据库。操作日志输出至db_switch.log。
可在本地环境(容器外)使用Angular watch,加快代码更改的反映速度。需进入运行中的开发容器,执行以下命令调整符号链接:
bash# 删除现有符号链接 rm -f /openils/var/web/eg2 # 创建指向Evergreen目录的新符号链接 ln -s /home/opensrf/repos/Evergreen/Open-ILS/web/eg2 /openils/var/web/eg2
之后即可在本地运行npm run watch。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务