# 安装说明
* 以下示例使用 docker-compose 命令,因此需要 Dockerfile 和 docker-compose.yml 文件搭配
* 以下示例假设 Dockerfile 在 redmine 为文件名的目录下,redmine目录和 docker-compose.yml 在同一个目录下
* 此容器使用了 bitnami 的封装套件
* 包含了两个服务,maridb和redmine
* 因此文件目录结构如下:
- docker-compose.yml
- redmine
- Dockerfile
* 以下内容仅做参考
* Dockerfile 参考内容:
FROM bitnami/redmine:latest
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 更新安装依赖包和核心扩展
RUN apt-get update && \
apt-get install -y --no-install-recommends \
vim zip unzip \
&& rm -rf /var/lib/apt/lists/*
* docker-compose.yml 中内容段参考,以下<username>,<password>,<redmine_username>,<redmine_password>需要替换成自己的:
version: '3.8'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.6
volumes:
- './redmine/mariadb:/bitnami/mariadb:rw'
- './redmine/backup:/bitnami/backup:rw'
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=<username>
- MARIADB_DATABASE=bitnami_redmine
- MARIADB_PASSWORD=<password>
#获取root权限
privileged: true
#使用 root 启动,避免权限问题
user: root
redmine:
#image: docker.io/bitnami/redmine:5
build: ./redmine
ports:
- '8000:3000'
volumes:
- './redmine/redmine:/bitnami/redmine:rw'
- './redmine/backup:/bitnami/backup:rw'
depends_on:
- mariadb
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
- REDMINE_DATABASE_HOST=mariadb
- REDMINE_DATABASE_PORT_NUMBER=3306
- REDMINE_DATABASE_USER=<username>
- REDMINE_DATABASE_NAME=bitnami_redmine
- REDMINE_DATABASE_PASSWORD=<password>
- REDMINE_USERNAME=<redmine_username>
- REDMINE_PASSWORD=<redmine_password>
#获取root权限
privileged: true
#使用 root 启动,避免权限问题
user: root
* 容器创建好之后,先启动maridb容器,之后再启动 redmine容器
* 进入redmine容器后,redmine的数据目录在 /bitnami/redmine 目录下,包括上传的 file 目录,配置文件目录
* 主目录在 /opt/bitnami/redmine 目录下, log 目录下可以查看一些日志信息,其中 file 和 plugins 目录是链接到了数据目录 /bitnami/redmine 目录下的文件
# 如何设置上传文件的大小限制
1. 首先需要管理员账号,进入到 管理-配置-文件-设置附件大小限制,如61440kb-批量下载附件大小总计大小限制,如204800kb
2. 也可以通过修改redmine的配置文件, 一般我们都会将容器的相关脚本文件放在宿主机的 /data/apps/redmine 目录下, 注意,.yml 文件前面使用空格,不要使用tab
#进入redmine容器
vi /bitnami/redmine/config/configuration.yml
#在default:这个配置下面,添加如下配置,单位是kb
attachment_max_size:
format: int
default: 61440
bulk_download_max_size:
format: int
default: 204800
#保存后重启redmine服务
3. 如果使用了 cdn,需要让注意cdn那边是否有限制上传文件大小
# 如何取消上传文件类型限制
1. 需要管理员账号,进入到 管理-配置-文件-允许上传的附件类型,不填写任何值则默认全部类型都允许,否则会是指定类型
# 如何设置邮件提醒
1. 首先需要先注册一个邮箱,如google邮箱
2. 然后修改 docker-redmine/redmine/redmine/config/configuration.yml 配置, 注意,.yml 文件前面使用空格,不要使用tab
#进入redmine容器
vi /bitnami/redmine/config/configuration.yml
#在default:这个配置下面,添加如下配置
email_delivery:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: "smtp.gmail.com"
port: 587
domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
authentication: :plain
user_name: "[email protected]" # your email username
password: "your_password" # your email password
#保存后重启redmine服务
3. 之后在对应的用户中设置邮件通知, 管理-用户-选择一个用户-左侧输入正确的用户邮件地址-右侧的 邮件通知 -选择指定的通知方式
# 安全设置
1. 设置域名和协议类型, 管理-配置-一般-设置 主机名称和协议类型
2. 管理-配置-认证-要求认证,选择 是-自动登录,禁用-允许自注册,禁用
3. 尽量设置组,将不同的用户放入对应的组中,再设置角色和权限,新建项目时,通过将组放入对应的角色权限中来进行权限分配
# 备份redmine
1. 备份数据库数据,需要将 备份文件 映射到宿主机,可以备份到 /bitnami/backup 目录下,以下操作需要进入到 redmine 容器中执行的
mkdir /bitnami/backup
mariadb-dump -h mariadb -u bn_redmine -p --databases bitnami_redmine --add-drop-database > /bitnami/backup/bitnami_redmine.sql
#根据提示输入密码即可
2. 备份redmine上传文件和插件
cd /opt/bitnami/redmine
tar czf /bitnami/backup/redmine_files.tar.gz files
tar czf /bitnami/backup/redmine_plugins.tar.gz plugins
# 升级或恢复redmine
1. 获取最新版本 redmine,可以使用删除镜像重建redmine,因为 redmine 的 Dockerfile 是获取最新的 redmine 版本
docker-compose stop redmine
docker-compose rm -f redmine
docker rmi docker-redmine_redmine
docker rmi bitnami/redmine
# 如果只是升级,则只需要重建 redmine
# 如果是恢复,则需要重建redmine和数据库
2. 容器重建好之后,观察是否能正常启动,启动后,访问站点是否能正常访问,登录进去,进入 管理-信息,查看版本是否升级
3. 如果是恢复redmine
* 需要使用 之前备份的sql文件进行恢复 需要进入到数据库容器中进行操作
mysql -u root -p < /bitnami/backup/bitnami_redmine.sql
* 恢复文件
cd /opt/bitnami/redmine
tar xzf /bitnami/backup/redmine_files.tar.gz
4. 临时修改日志文件的权限
chmod 666 log/production.log
5. 升级数据库, 需要在 /opt/bitnami/redmine 目录下运行
bundle exec rake db:migrate RAILS_ENV=production
6. 恢复插件
tar xzf /bitnami/backup/redmine_plugins.tar.gz
bundle exec rake redmine:plugins RAILS_ENV=production
7. 清理缓存
bundle exec rake tmp:clear
9. 恢复日志文件的权限
chmod 644 log/production.log
10. 重启redmine
# 插件安装
* 安装插件,可能还会对 redmine 的版本有要求,需要更新对应版本的 redmine,或取对应版本的插件
1. 进入 redmine 容器进行操作
2. 下载插件到 plugins 目录,注意,最好是通过 git clone 的形式抓取, 获取到的插件目录中必须包含Gemfile文件才是有效的插件
cd /opt/bitnami/redmine/plugins/
git clone https://github.com/berti92/mega_calendar.git
3. 下载的插件文件名,需要去掉版本号,比如 mega_calendar-1.2.1, 则需要去掉 -1.2.1,否则可能出现安装失败
4. 安装插件
cd /opt/bitnami/redmine
bundle install
#这一步可能会有错误,如果提示 can't be updated because frozen mode is set,则需要执行以下操作,然后再执行 bundle install
bundle config set frozen false
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
#安装完成后,如果有设置过 forzen,最好再将其还原回去
bundle config set frozen true
5. 重启 redmine
# 插件删除
* 注意,并不是所有的插件都能删除,因为有些没有定义删除操作,或者删除操作有错误
* 删除插件可能导致数据库操作错误,更有可能导致redmine无法启动,需要尽量不要删除插件
1. 进入 redmine 容器进行操作
2. 删除指定名字的插件
cd /opt/bitnami/redmine
bundle exec rake redmine:plugins:migrate NAME=<plugin_name> VERSION=0 RAILS_ENV=production
3. 删除插件文件(非必要操作)
cd /opt/bitnami/redmine/plugins
rm -rf <plugin_name>
4. 重启 redmine
参考链接: