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

news2024/11/18 2:23:00

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

开源软件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

在这里插入图片描述

部署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即可

在这里插入图片描述
默认账号:admin
默认密码:123456
在这里插入图片描述

修改密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯】第11届Scratch国赛中级组第6题 -- 3D打印小猫

[导读]:蓝桥杯大赛是工业和信息化部人才交流中心举办的全国性专业信息技术赛事。蓝桥杯大赛首席专家倪光南院士说:“蓝桥杯以考促学,塑造了领跑全国的人才培养选拨模式,并获得了行业的深度认可。” 春雷课堂计划推出Scratch蓝桥杯…

Linux网络协议之TCP协议(传输层)

Linux网络协议之TCP协议(传输层) 文章目录Linux网络协议之TCP协议(传输层)1.理解TCP协议2.谈谈可靠性问题3.TCP协议格式4.关于TCP的两个问题5.TCP序号与确认序号6.TCP缓冲区7.TCP窗口大小8.TCP的六个标志位9.确认应答机制(ACK)10.超时重传机制11.连接管理机制11.1 三次握手和四…

LEADTOOLS 入门教程: 使用 H264 视频创建 DICOM 文件 - 控制台 C#

LEADTOOLS是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理&#x…

Android系统之路(初识MTK) ------Android11.0添加Recents一键清除最近任务按钮

Android11.0添加Recents一键清除最近任务按钮 今天因为在复测昨天的一个monkey压测并且还没测完,所以打算记录最近做系统开发的一些心得和经验,也记录一下自己的系统开发历程 修改前效果: 修改后的效果: 后期补上… 需要修改的文件列表(注意:各个版本或平台可能要修改…

Git使用

一、Git介绍 1.1、版本控制 在我们日常生活中,使用微信6.5.3版本,QQ7.4版本,Chrome 43.0.2357.65 版本,表示的都是某些软件使用的版本号。这些软件在开发过程中,版本都是由1不断的变化而来。对于软件公司来说&#x…

用魔法打败魔法!AI识别名人造假视频;OpenAI开源Point-E进军3D打印市场;谷歌CALM算法加速文本生成… | ShowMeAI资讯日报

👀日报合辑 | 🎡AI应用与工具大全 | 🔔公众号资料下载 | 🍩韩信子 📢 用魔法打败魔法!基于面部、手势和声音识别名人 deepfake 视频 https://www.pnas.org/doi/pdf/10.1073/pnas.2216035119 Deepfake 是 …

模型评估指标

模型评估指标【准度、精度、召回率、F1-score及ROC曲线】总结 参考于李沐的机器学习课程。 通常要使用多个模型综合评价一个模型的好坏。 Accuracy 预测正确的个数 / 样本总个数 sum(y_pred y_label)/y_label.size()Precision 正确地预测为类别 i 的个数 / 预测为 i 的总…

【信管5.1】进度管理规划与活动

进度管理规划与活动进度这个东西,相信在不少老板眼里就是你加班的基础。进度赶不上了怎么办?加班呀,进度赶上了呢?再多做点东西呀!反正加班这件事是少不了的,当你学习完我们的项目管理知识之后,…

求词频与逆词频SnowNLP.tf与SnowNLP.idf

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 求词频与逆词频 SnowNLP.tf与SnowNLP.idf 选择题 以下关于python代码表述有误的一项是? from snownlp import SnowNLP myText ([ [python, python], [python, 编程, 编程], [django, py…

Java项目:springboot+vue教室图书馆预约管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 智慧物联网教室预约系统-后台系统 项目简介: 这是一个前后端分离的教室预约和查看系统项目,能够实现以教室为单位活动的预约和取…

【微服务】Nacos为什么放弃短连接(http)而选择拥抱长连接(gRPC)

目录 一、现状背景 二、场景分析 1、配置 2、服务 三、长连接核心诉求 1、功能性诉求 1.1、客户端 1.2、服务端 2、性能 3、负载均衡 4、连接生命周期 4.1、心跳保活机制 4.2、需要什么 四、长连接选型对比 五、基于长链接的⼀致性模型 1.、配置⼀致性模型 1.…

【软件测试】8年测试老鸟的解读,测试人你的发展?测试开发......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试开发到底是测试…

引擎入门 | Unity UI简介–第3部分(3)

本期我们继续为大家进行Unity UI简介(第三部分)的后续教程 本篇内容 7.使面板上下滑动 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介(第三部分)篇幅较长,分为八篇,本篇为第三篇。 7.使面板上下…

第6章 关系代数语言

第6章 关系代数语言 考试范围:6.1 考试题型:计算题 考试内容:关系代数操作 Selection Projection Join Cartesian product Rename Union set-difference intersection 1、Selection(选行操作) 2、Projection(选列操作) 3、Join N…

rabbitmq基础4——单机多节点集群、多机集群部署、基础功能测试

文章目录一、一机多实例集群1.1 三机启动1.2 立主纳从1.3 查看集群状态1.4 web监控1.5 测试1.5.1 数据同步1.5.2 一从死,主仍战1.5.3 从复活,死亡期间数据同步1.5.4 主死,从活但不可用二、多机集群2.1 确定主机名2.2 三机部署rabbitmq2.3 设主…

白话说Java虚拟机原理系列【第二章】:Class字节码文件详解

前导说明: 本文基于《深入理解Java虚拟机》第二版和个人理解完成, 以大白话的形式期望能用大家都看懂的描述讲清楚虚拟机内幕, 后续会增加基于《深入理解Java虚拟机》第三版内容,并进行二个版本的对比。 Class字节码文件的数据结构…

ChatGPT 帮我跑了一个完整的 DevOps 流水线,离了个大谱...

大家好,我是米开朗基杨。上篇文章给大家介绍了👉如何将 N 个 ChatGPT 账号接入微信,今天就来给大家演示一下如何利用 ChatGPT 帮我工作,让自己有更多的时间摸鱼!上篇文章还没看的赶紧去看👇我将 9 个 ChatG…

SpringBoot2核心技术(核心功能)- 05、Web开发【5.3 请求参数处理】

5.3、请求参数处理 0、请求映射 1、rest使用与原理 xxxMapping;Rest风格支持(使用HTTP请求方式动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在&#xff1…

Google 释出开源软件漏洞扫描工具 OSV-Scanner​

开源开发人员可在项目使用 OSV-Scanner,透过比对依赖项目和 OSV 漏洞资料库,找出项目的依赖项目中所存在的漏洞。Google 推出免费工具 OSV-Scanner(https://github.com/google/osv-scanner),供开源开发人员可以更简单地…

docker网络模式 与 搭建nginx

目录 1. docker网络模式 2. 连接容器的三种方法 3. Docker Networking 3.1 创建网络 3.2 查看宿主机中创建的网络 3.3 删除网络 3.3 如何使用网络 4.搭建Nginx 1.准备工作 1.1 拉取镜像 1.2 在宿主机中创建挂载目录 2.准备2个tomcat 容器集群 3.准备 Nginx配置 3.…