使用docker快速部署ferry开源工单系统

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 简单好用的工单系统,你不来看看吗?

大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步!

开源软件ferry是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等于一身的开源工单系统,当然也可以称之为工作流引擎。 致力于减少跨部门之间的沟通,自动任务的执行,提升工作效率与工作质量,减少不必要的工作量与人为出错率。

有什么功能

工单系统相关功能

工单提交申请
工单统计
多维度工单列表,包括(我创建的、我相关的、我待办的、所有工单)
自定义流程
自定义模版
任务钩子
任务管理
催办
转交
手动结单
加签
多维度处理人,包括(个人,变量 (创建者、创建者负责人))
排他网关,即根据条件判断进行工单跳转
并行网关,即多个节点同时进行审批处理
通知提醒(目前仅支持邮件)
流程分类管理
权限管理相关功能,使用 casbin 实现接口权限控制:
用户、角色、岗位的增删查改,批量删除,多条件搜索
角色、岗位数据导出 Excel
重置用户密码
维护个人信息,上传管理头像,修改当前账户密码
部门的增删查改
菜单目录、跳转、按钮及 API 接口的增删查改
登陆日志管理
左菜单权限控制
页面按钮权限控制
API 接口权限控制

前期准备工作

搭建docker环境

搭建docker环境可参照之前文章 centos7.2快速搭建docker

docker部署mysql

拉取并启动mysql容器,密码设置为test,端口为3306

[root@test ~]#  docker run -d -p3306:3306 --name=mysql5 -e MYSQL_ROOT_PASSWORD=test mysql:5

登录mysql创建数据库

[root@test ~]# docker exec -it mysql5 bash
root@a7355653c893:/# mysql -uroot -ptest
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database ferry_test;
Query OK, 1 row affected (0.01 sec)

mysql> exit
Bye
root@a7355653c893:/# exit 
exit
[root@test ~]#

docker中部署redis

[root@test ~]# docker run --name=redis6.0  -d -p 6379:6379 redis:6.0
Unable to find image 'redis:6.0' locally
6.0: Pulling from library/redis
a2abf6c4d29d: Pull complete 
c7a4e4382001: Pull complete 
4044b9ba67c9: Pull complete 
2b1fc7c1d01d: Pull complete 
956e458715d7: Pull complete 
cd2a61b616a9: Pull complete 
Digest: sha256:20756751c3382cf4867bef796eeda760e93022ec3decdd9803dea7a4f33f3b4b
Status: Downloaded newer image for redis:6.0
08f6ab60a6230206b33d7b72b95db6803139b7b42fba181f94f17be8c7bb7450

查看容器状态

查看STATUS,为UP即正常

[root@test ~]# docker ps -a

image.png

部署ferry

安装git并拉取ferry源码

[root@test ~]# yum -y install git
[root@test ~]#  git clone https://github.com/lanyulei/ferry.git
Cloning into 'ferry'...
remote: Enumerating objects: 2729, done.
remote: Counting objects: 100% (660/660), done.
remote: Compressing objects: 100% (263/263), done.
remote: Total 2729 (delta 413), reused 446 (delta 395), pack-reused 2069
Receiving objects: 100% (2729/2729), 8.53 MiB | 14.78 MiB/s, done.
Resolving deltas: 100% (1525/1525), done.

修改ferry配置

[root@test ~]# cd ferry/
[root@test ferry]# vim config/settings.yml
#主要修改mysql的host和password以及数据库名称
 database:
    dbtype: mysql
    host: 192.168.0.183
    name: ferry_test
    password: test
    port: 3306
    username: root
#redis的host
redis:
    url: redis://192.168.0.183:6379

创建needinit文件

[root@test ferry]# touch config/needinit
注意:在config 目录新建 needinit 文件, 第一次启动的时候db中没有数据,此时可以通过这命令初始化数据,服务正常启动后再删该文件(以防下次容器启动时候再次初始化

创建freey容器并启动

[root@test ~]# docker run -itd --name ferry -v /root/ferry/config:/opt/workflow/ferry/config -p 8002:8002 lanyulei/ferry:1.0.1

Unable to find image 'lanyulei/ferry:1.0.1' locally
1.0.1: Pulling from lanyulei/ferry
59bf1c3509f3: Pull complete 
dd7148a8be01: Pull complete 
65cd14bd86e4: Pull complete 
7aa78b60a44f: Pull complete 
853a4cda0901: Pull complete 
568c39c57f86: Pull complete 
9f411cdb46b8: Pull complete 
7c57bbaa26ba: Pull complete 
03a1ebb3b05a: Pull complete 
b282e453d251: Pull complete 
17d249c41c8f: Pull complete 
c4ebd785b260: Pull complete 
9c780f01f6bf: Pull complete 
Digest: sha256:867627252a41ad23c15cb03f8f1c1e88f84ede1d67573732e13a06693f0b203e
Status: Downloaded newer image for lanyulei/ferry:1.0.1
b91679037b40a138713e160ce3a33ea4c4aeb4164d8ce79f5a41c5f40d456dc5
[root@test ~]# 
[root@test ~]# docker ps -a 
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS                     PORTS                                                  NAMES
b91679037b40   lanyulei/ferry:1.0.1   "/opt/workflow/ferry…"   7 seconds ago    Up 19 seconds                                                          ferry
08f6ab60a623   redis:6.0              "docker-entrypoint.s…"   12 minutes ago   Up 12 minutes              0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              redis6.0
a7355653c893   mysql:5                "docker-entrypoint.s…"   15 minutes ago   Up 15 minutes              0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql5
[root@test ~]#

命令解释 docker run -it -v 宿主机目录绝对路径:容器目录绝对路径 镜像ID或NAME /bin/bash
-it 交互式运行容器
-d 在后台运行容器,并且打印容器id --name ferry 容器名称为ferry -v 挂载volume数据卷 宿主机目录绝对路径 宿主机中config配置文件目录所在路径。挂载之后容器运行可以将当前目录的配置文件挂载到容器内指定的目录调用

浏览器访问工单系统

浏览器访问http://ip:8002即可

image.png

默认账号:admin
默认密码:123456
image.png

修改密码

image.png

image.png
image.png

码字不易。如果文章对您有希望的话,请三连支持一波。
如有问题,欢迎留言,一起探讨,感谢。
也可关注早九晚十二微信公众号,看到留言后会第一时间回复。

相关文章
|
19小时前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
11 2
国产数据实战之docker部署MyWebSQL数据库管理工具
|
3天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
13 2
|
4天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
11 3
|
6天前
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.1版已发布
RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题
22 5
|
6天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
79 2
|
7天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
42 1
|
22天前
|
存储 自然语言处理 机器人
实战揭秘:当RAG遇上企业客服系统——从案例出发剖析Retrieval-Augmented Generation技术的真实表现与应用局限,带你深入了解背后的技术细节与解决方案
【10月更文挑战第3天】随着自然语言处理技术的进步,结合检索与生成能力的RAG技术被广泛应用于多个领域,通过访问外部知识源提升生成内容的准确性和上下文一致性。本文通过具体案例探讨RAG技术的优势与局限,并提供实用建议。例如,一家初创公司利用LangChain框架搭建基于RAG的聊天机器人,以自动化FAQ系统减轻客服团队工作负担。尽管该系统在处理简单问题时表现出色,但在面对复杂或多步骤问题时存在局限。此外,RAG系统的性能高度依赖于训练数据的质量和范围。因此,企业在采用RAG技术时需综合评估需求和技术局限性,合理规划技术栈,并辅以必要的人工干预和监督机制。
51 3
|
3月前
|
数据采集 监控 测试技术
大型IM稳定性监测实践:手Q客户端性能防劣化系统的建设之路
本文以iOS端为例,详细分享了手 Q 客户端性能防劣化系统从0到1的构建之路,相信对业界和IM开发者们都有较高的借鉴意义。
111 2
|
1月前
|
人工智能 自然语言处理 搜索推荐
AI技术在智能客服系统中的应用与挑战
【9月更文挑战第32天】本文将探讨AI技术在智能客服系统中的应用及其面临的挑战。我们将分析AI技术如何改变传统客服模式,提高服务质量和效率,并讨论在实际应用中可能遇到的问题和解决方案。
179 65
|
25天前
|
存储 安全 开发工具
百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现
本文主要介绍了百度公共IM系统的Andriod端IM SDK的建设背景、IM SDK主要结构和工作流程以及建设过程遇到的问题和解决方案。
39 3