# cronin **Repository Path**: yunwe/cronin ## Basic Information - **Project Name**: cronin - **Description**: 面向运维和程序开发 定时任务管理平台。接入常用第三方工具,专于任务整合与自动化。单文件无依赖。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/mnyuan - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 28 - **Created**: 2025-04-17 - **Last Updated**: 2025-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, crontab, 定时任务 ## README # cronin 服务器任务管理平台 ### 介绍 cronin 是企业内部任务管理平台,支持linux、windows服务器;具有统一维护、日志监控、告警监控、任务重放、自动化等优势,让任务管理维护变得简单。 ### 特点 * 基于 GO 语言开发,编译二进制单文件程序,无外部依赖,开箱及用 * 统一的任务管理方案,让开发专注于业务 ### 功能 1. 多命名空间,区分不同开发环境任务,各自独立管理避免混淆 2. 支持多种任务种类:http请求、cmd/shell脚本、grpc请求、sql执行、jenkins构建、多任务组合流水线 3. 支持gitee远程仓库拉取脚本执行。 4. 支持corn周期循环语法,定时单次脚本类型任务。 5. 链路式任务日志信息;自定义通知模板设置对任务状态进行消息通知。 ### 功能预览 >命名空间&任务展示 > ![image](./work/list2.png) >远程服务器执行sh脚本 > ![image](./work/set2.png) >git拉取仓库sql语句脚本执行 > ![image](./work/set2-2.png) >执行日志 > ![image](./work/trace2.png) >流水线任务 > ![image](./work/img/pipeline-set.jpg) ### 文档 #### 手册 * [任务设置](./work/config_set.md) * [流水线设置](./work/pipeline_set.md) * [人员设置](./work/user_set.md) * [消息设置](./work/message_template_set.md) * [链接设置](./work/source_set.md) * 环境设置 #### 博文 * [如何实现jenkins、sql、redis、git等工具的一体化自动发布?](https://juejin.cn/post/7416270933790228495) * [tapd与cronin对接实现自动发bug单](https://my.oschina.net/mnyuan/blog/16570220) ### 安装 #### 一、 获取程序包 **方式1:下载编译包(优选)** 进入 [releases](https://gitee.com/mnyuan/cronin/releases) 根据服务器型号选择编译包下载。 **方式2:手动编译** - main.version 参数为指定的版本号。 - main.isBuildResource 参数为是否打包静态资源文件,建议true。 ~~~ # 编译命令 GOOS=linux go build -ldflags "-X main.version=v0.xx -X main.isBuildResource=true" -o cronin.xx ./main.go ~~~ **方式3:使用容器** 使用已有镜像 ```bash docker run -d \ --name cronin-app \ -v /data/cronin/data:/app/data \ -p 9003:9003 \ registry.cn-hangzhou.aliyuncs.com/huang-image/cronin:0.8.4 ``` 自行构建 ```dockerfile # 使用 Alpine 作为基础镜像(仅5MB) FROM alpine:3.17 # 安装 glibc 兼容层(解决 GLIBC_2.28 依赖问题) RUN apk add --no-cache gcompat libstdc++ # 创建应用目录 WORKDIR /app # 复制配置文件目录和可执行文件 COPY configs/ ./configs/ COPY cronin.0.8.4 ./ # 设置可执行权限 RUN chmod +x /app/cronin.0.8.4 # 指定默认运行命令 CMD ["/app/cronin.0.8.4"] ``` 构建命令 ```bash docker build -t registry.cn-hangzhou.aliyuncs.com/huang-image/cronin:0.8.4 . && docker push registry.cn-hangzhou.aliyuncs.com/huang-image/cronin:0.8.4 ``` ```ini version: '3.8' services: cronin: image: registry.cn-hangzhou.aliyuncs.com/huang-image/cronin:0.8.4 container_name: cronin-app ports: - "9003:9003" # 端口映射 restart: unless-stopped # 自动重启(除非手动停止) volumes: - ./configs:/app/configs # 挂载配置文件目录(按需修改) environment: - TZ=Asia/Shanghai # 时区设置(可选) ``` #### 二、 完善配置 项目启动时将寻找当前需要准备`./configs/database.yaml`数据库配置文件、`./configs/main.yaml`主配置文件。 #### 三、 运行 ``` ./cronin.xx ``` 入口页地址: http://127.0.0.1:9003/ 默认账号:root / 123456 演示地址:http://cronin.mnyuan.com/login ### 捐助与支持 如果您觉得我的开源软件对你有所帮助请关注、star、fork。 如发现bug、更优的实现方案可提交PR或新建[issue](https://gitee.com/mnyuan/cronin/issues)