说明:容器编排不是仅用于 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


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


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


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


操作
上传文件至 Docker/xwks** 目录**
进入到 Docker/xwks 目录(请确保 xwks 目录下是空的),选择 xproc 和 .env 后直接 拖拽 到飞牛目录上


上传完成如下图所示


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


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


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


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


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


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


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


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


配置计划任务
通过ssh连接飞牛NAS系统
工具:MobaXterm
登录:输入飞牛管理员账号和密码(安装飞牛系统时设置的用户名和密码)。


将飞牛管理员用户添加到 docker** 分组**
** 执行 docker ps 命令,**


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


可以看到 再次执行 docker ps 命令,查看到 xredmine 和 xpgsql16 两个容器
配置 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


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


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

**
**
编辑内容,输入完成(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

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


下载后查看内部内容


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