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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 简单好用的工单系统,你不来看看吗?

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

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

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

相关文章
|
6月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
301 5
|
6月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
2542 4
|
6月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
1918 9
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
900 4
|
Ubuntu Linux Docker
Docker -- 系统整洁之道 -- 0
在我的小 rmbp 256G的硬盘里,实在是装不下100多个G的虚拟机了,所以想把一些东西迁移到这两年很火的Docker下,Docker以前也有过一两次,只是按着别人给的用法用的,具体的一些细节并没有深入,和git一样,这么牛掰的东西怎么能不好好学一些呢? Docker和虚拟机的区别 Docker是一种容器,虚拟机是一种管理程序虚拟机化(hypervisor virtualization,HV)。
1754 0
|
Ubuntu Shell 应用服务中间件
Docker -- 系统整洁之道 -- 1
在上文Docker – 系统整洁之道 – 0中已经对Docker是什么,安装Docker以及怎么运行一个简单的容器有了初步了解,这篇文章介绍Docker的一些命令和Docker镜像的使用及操作。
1642 0
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
724 8
|
6月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
612 6

热门文章

最新文章