收起左侧

基于Docker 部署pgsql + redmine 和自动备份功能

1
回复
67
查看
[ 复制链接 ]

2

主题

2

回帖

0

牛值

江湖小虾

2026-1-20 22:31:27 显示全部楼层 阅读模式

说明:容器编排不是仅用于 redmine,也可持续增加新的应用,本次部署的 postgres sql 也可提供给其他应用。

本文介绍 基于Docker 部署 pgsql 和 redmine 自动备份功能,同时也可基于容器编排增加新的应用,或当前 pgsql 为其他应用提供数据。

gitee 仓储位置: https://gitee.com/xiafeio/fndockerwks

介绍

部署docker容器应用。

应用

**postgres: 16.11-alpine **

redmine: 6.1.1-alpine

系统

系统:飞牛NAS系统

准备

在飞牛系统中创建两个目录,分别是

Bakup** : 用于存储相应的备份。 确保绝对路径是 **/vol1/1000/Bakup

Docker** : 用于容器挂载映射。 确保绝对路径是 **/vol1/1000/Docker

20260120060529.png

如果需要更改 /vol1/1000 (飞牛NAS默认存储空间),需要同步修改 xproc/xbksh 目录 所有.sh 文件中的 /vol1/1000 ,如 bk_redmine.sh

20260120061823.png

进入到 Docker 目录,在创建一个 xwks本部署都在这个目录下,如果修改 xwks 目录名,也需要同样修改 xproc/xbksh 目录 所有.sh 文件中的 xwks ,参数上图中 /vol1/1000/Docker/xwks

20260120060539.png

打开飞牛NS 的ssh

目前使用的是飞牛 V1.1.11 版本,还未找到支持添加脚本的计划任务,需要通过系统自带的 crontab 添加计划任务以及授予 管理员 admindocker 权限。如下图所示,通过 1,2,3 步打开 ssh 功能。后面操作完成后在以同样的方法 关闭ssh

20260120063152.png

操作

上传文件至 Docker/xwks** 目录**

进入到 Docker/xwks 目录(请确保 xwks 目录下是空的),选择 xproc.env 后直接 拖拽 到飞牛目录上

20260120065341.png

上传完成如下图所示

20260120070118.png

容器编排

**如下图所示,打开 Docker , 选择 Compose ,点击 **新建项目

20260120070435.png

根据个人情况,输入项目名称,这里以 xwks ,为例。路径 选择 Docker/xwks 目录。 勾选 创建项目后立即启动

20260120071129.png

**选择 上传doker-compose.yml 方式,点击两次 **选择框

20260120072158.png

选择 docker-compose.yml 文件,点击 打开

20260120072427.png

点击 确定 ,开始拉取镜像文件,此时 只需等待完成

20260120072623.png

关闭后切换到 容器 界面,可以看到 运行的 xpgsql16xredmine 两个容器

20260120073027.png

redmine** 端口默认配置为 17005,可打开 .env 文件修改。**

20260120073403.png

在浏览器中输入 ip:17005,打开 redmine 访问成功。

20260120073547.png

配置计划任务

通过ssh连接飞牛NAS系统

工具:MobaXterm

登录:输入飞牛管理员账号和密码(安装飞牛系统时设置的用户名和密码)。

20260120202224.png

将飞牛管理员用户添加到 docker** 分组**

** 执行 docker ps 命令,**

20260120202640.png

可以看到拒绝访问 permission denied , 执行下面的命令

 # 1. 将 admin用户(飞牛管理员) 添加到docker用户组,执行该命令需要再次输入一遍 admin 的密码
 sudo usermod -aG docker admin
 ​
 # 2. 刷新用户组权限(飞牛NAS专用,立即生效,无需重启NAS)
 newgrp docker
 ​
 # 3. 验证是否生效(执行无报错就是成功)
 docker ps

20260120203004.png

可以看到 再次执行 docker ps 命令,查看到 xredminexpgsql16 两个容器

配置 sudo 免密输入设置

执行下面的命令

 # 1. 编辑 sudo 免密配置文件
 sudo visudo -f /etc/sudoers.d/admin
 # 2. 粘贴下面这行内容到文件末尾,保存退出(vim:按ESC → :wq 回车)或 (nano: Ctrl + O 回车). 这里的 admin 是要免密的用户
 admin ALL=(ALL) NOPASSWD: /usr/bin/docker
验证备份脚本是否生效

手动执行 bk_redmine.sh

 /vol1/1000/Docker/xwks/xproc/xbksh/bk_redmine.sh

20260120204624.png

执行成功输入日志如上图所示,打开飞牛查看

20260120204918.png

配置定时备份

执行命令 crontab -e , 配置执行时间

 crontab -e

**20260120210606.png
**

编辑内容,输入完成(Ctrl + O 保存, 回车确认, Ctrl + X 退出)。

 # 验证 每天 21:05 定时启动脚本
 5 21 * * * /vol1/1000/Docker/xwks/xproc/xbksh/bk_redmine.sh
 ​
 # 配置 每周 4:00 定时启动脚本
 0 4 * * 1 /vol1/1000/Docker/xwks/xproc/xbksh/bk_redmine.sh

执行命令 crontab -l, 查看是否配置成功

 crontab -l

**20260120211232.png
**

查看备份文件,生成时间在21:05,表示定时计划任务配置成功。

20260120211507.png

下载后查看内部内容

20260120212125.png

注:  配置完成后不要忘记关闭 ssh 

在编写容器编排 不是被坑就是在被坑的路上,如 postgres: 16.10 和 postgres: 16.11-alpine 产生两个容器中 pg_dump位置不一致,导致还要修改脚本。希望飞牛官方越做越好,省却这么多坑lol

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

2

主题

2

回帖

0

牛值

江湖小虾

5 天前 楼主 显示全部楼层

补充: 太棒了。 在应用中心 找到了 “任务计划” 功能,可以通过这个界面创建计划任务 victory

20260125080107.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则