NotePublic/Software/Applications/Redmine/Docker_方式安装_Redmine.md

393 lines
13 KiB
Markdown
Raw Normal View History

# Docker 方式安装 Redmine
容器名称为 redmine。
```bash
# 工作目录
cd /home/web/redmine
# Run Redmine with SQLite3
docker run -d -p 9001:3000 --name redmine redmine
# Run Redmine with a Database Container
docker run -d --name redminedb -v "$PWD/database":/var/lib/mysql -e MYSQL_USER=root -e MYSQL_PASSWORD=<password> -e MYSQL_DATABASE=redmine -e MYSQL_ROOT_PASSWORD=<password> mariadb:latest
# docker run -d --name redmine --link redminedb:mysql -p 9001:3000 -e REDMINE_DB_MYSQL=redminedb -e REDMINE_DB_USERNAME=root -e REDMINE_DB_PASSWORD=<password> -v /home/web/redmine/config/configuration.yml:/usr/src/redmine/config/configuration.yml -v /home/web/redmine/log:/usr/src/redmine/log -v /home/web/redmine/data:/home/redmine/data -v /home/web/redmine/plugins:/usr/src/redmine/redmine/redmine/plugins redmine:latest
mkdir home
mkdir -p usr/config
touch usr/config/configuration.yml
docker run -d --name redmine --link redminedb:mysql -p 9001:3000 -e REDMINE_DB_MYSQL=redminedb -e REDMINE_DB_USERNAME=root -e REDMINE_DB_PASSWORD=<password> \
-v /home/web/redmine/usr/config/configuration.yml:/usr/src/redmine/config/configuration.yml \
-v /home/web/redmine/usr/log:/usr/src/redmine/log \
-v /home/web/redmine/usr/plugins:/usr/src/redmine/plugins \
-v /home/web/redmine/usr/redmine/plugins:/usr/src/redmine/redmine/redmine/plugins \
-v /home/web/redmine/home:/home/redmine redmine:latest
```
configuration.yml 初始配置如下:
```yml
# = Redmine configuration file
#
# Each environment has its own configuration options. If you are only
# running in production, only the production block needs to be configured.
# Environment specific configuration options override the default ones.
#
# Note that this file needs to be a valid YAML file.
# DO NOT USE TABS! Use 2 spaces instead of tabs for indentation.
# default configuration options for all environments
default:
# Outgoing emails configuration
# See the examples below and the Rails guide for more configuration options:
# http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
email_delivery:
# ==== Simple SMTP server at localhost
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: "localhost"
# port: 25
#
# ==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: "example.com"
# port: 25
# authentication: :login
# domain: 'foo.com'
# user_name: 'myaccount'
# password: 'password'
#
# ==== SMTP server at example.com using PLAIN authentication
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: "example.com"
# port: 25
# authentication: :plain
# domain: 'example.com'
# user_name: 'myaccount'
# password: 'password'
#
# ==== SMTP server at using TLS (GMail)
# This might require some additional configuration. See the guides at:
# http://www.redmine.org/projects/redmine/wiki/EmailConfiguration
#
# 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: "your_email@gmail.com"
# password: "your_password"
#
# ==== Sendmail command
#
# email_delivery:
# delivery_method: :sendmail
# Absolute path to the directory where attachments are stored.
# The default is the 'files' directory in your Redmine instance.
# Your Redmine instance needs to have write permission on this
# directory.
# Examples:
# attachments_storage_path: /var/redmine/files
# attachments_storage_path: D:/redmine/files
attachments_storage_path:
# Configuration of the autologin cookie.
# autologin_cookie_name: the name of the cookie (default: autologin)
# autologin_cookie_path: the cookie path (default: /)
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
autologin_cookie_name:
autologin_cookie_path:
autologin_cookie_secure:
# Configuration of SCM executable command.
#
# Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)
# On Windows + CRuby, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.
#
# On Windows + JRuby 1.6.2, path which contains spaces does not work.
# For example, "C:\Program Files\TortoiseHg\hg.exe".
# If you want to this feature, you need to install to the path which does not contains spaces.
# For example, "C:\TortoiseHg\hg.exe".
#
# Examples:
# scm_subversion_command: svn # (default: svn)
# scm_mercurial_command: C:\Program Files\TortoiseHg\hg.exe # (default: hg)
# scm_git_command: /usr/local/bin/git # (default: git)
# scm_cvs_command: cvs # (default: cvs)
# scm_bazaar_command: bzr.exe # (default: bzr)
#
scm_subversion_command:
scm_mercurial_command:
scm_git_command:
scm_cvs_command:
scm_bazaar_command:
# SCM paths validation.
#
# You can configure a regular expression for each SCM that will be used to
# validate the path of new repositories (eg. path entered by users with the
# "Manage repositories" permission and path returned by reposman.rb).
# The regexp will be wrapped with \A \z, so it must match the whole path.
# And the regexp is case sensitive.
#
# You can match the project identifier by using %project% in the regexp.
#
# You can also set a custom hint message for each SCM that will be displayed
# on the repository form instead of the default one.
#
# Examples:
# scm_subversion_path_regexp: file:///svnpath/[a-z0-9_]+
# scm_subversion_path_info: SVN URL (eg. file:///svnpath/foo)
#
# scm_git_path_regexp: /gitpath/%project%(\.[a-z0-9_])?/
#
scm_subversion_path_regexp:
scm_mercurial_path_regexp:
scm_git_path_regexp:
scm_cvs_path_regexp:
scm_bazaar_path_regexp:
scm_filesystem_path_regexp:
# Absolute path to the SCM commands errors (stderr) log file.
# The default is to log in the 'log' directory of your Redmine instance.
# Example:
# scm_stderr_log_file: /var/log/redmine_scm_stderr.log
scm_stderr_log_file:
# Key used to encrypt sensitive data in the database (SCM passwords,
# LDAP passwords, and TOTP (two-factor authentication) secret keys).
# If you don't want to enable data encryption, just leave it blank.
# WARNING: losing/changing this key will make encrypted data unreadable.
#
# If you want to encrypt existing data in your database:
# * set the cipher key here in your configuration file
# * encrypt data using 'rake db:encrypt RAILS_ENV=production'
#
# If you have encrypted data and want to change this key, you have to:
# * decrypt data using 'rake db:decrypt RAILS_ENV=production' first
# * change the cipher key here in your configuration file
# * encrypt data using 'rake db:encrypt RAILS_ENV=production'
database_cipher_key:
# Set this to false to disable plugins' assets mirroring on startup.
# You can use `rake redmine:plugins:assets` to manually mirror assets
# to public/plugin_assets when you install/upgrade a Redmine plugin.
#
#mirror_plugins_assets_on_startup: false
# Your secret key for verifying cookie session data integrity. If you
# change this key, all old sessions will become invalid! Make sure the
# secret is at least 30 characters and all random, no regular words or
# you'll be exposed to dictionary attacks.
#
# If you have a load-balancing Redmine cluster, you have to use the
# same secret token on each machine.
#secret_token: 'change it to a long random string'
# Requires users to re-enter their password for sensitive actions (editing
# of account data, project memberships, application settings, user, group,
# role, auth source management and project deletion). Disabled by default.
# Timeout is set in minutes.
#
#sudo_mode: true
#sudo_mode_timeout: 15
# Absolute path (e.g. /usr/bin/convert, c:/im/convert.exe) to
# the ImageMagick's `convert` binary. Used to generate attachment thumbnails.
#imagemagick_convert_command:
# Absolute path (e.g. /usr/bin/gs, c:/ghostscript/gswin64c.exe) to
# the `gs` binary. Used to generate attachment thumbnails of PDF files.
#gs_command:
# Configuration of MiniMagick font.
#
# Redmine uses MiniMagick in order to export a gantt chart to a PNG image.
# This setting is necessary to properly display CJK (Chinese, Japanese,
# and Korean) characters in the PNG image. Please make sure that the
# specified font is installed in the Redmine server.
#
# This setting is necessary only when CJK characters are used in gantt.
#
# Note that rmagick_font_path in prior to Redmine 4.1.0 has been renamed
# to minimagick_font_path.
#
# Examples for Japanese:
# Windows:
# minimagick_font_path: C:\windows\fonts\msgothic.ttc
# Linux:
# minimagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
#
minimagick_font_path:
# Maximum number of simultaneous AJAX uploads
#max_concurrent_ajax_uploads: 2
# Configure OpenIdAuthentication.store
#
# allowed values: :memory, :file, :memcache
#openid_authentication_store: :memory
# URL of the avatar server
#
# By default, Redmine uses Gravatar as the avatar server for displaying
# user icons. You can switch to another Gravatar-compatible server such
# as Libravatar and opensource servers listed on
# https://wiki.libravatar.org/running_your_own/
#
# URL of each avatar is: #{avatar_server_url}/avatar/#{hash}
#
#avatar_server_url: https://www.gravatar.com # default
#avatar_server_url: https://seccdn.libravatar.org
# Configure CommonMark hardbreaks behaviour
#
# allowed values: true, false
# true: treats regular line break (\n) as hardbreaks
# false: switches to default common mark where two or more spaces are required
# common_mark_enable_hardbreaks: true
# specific configuration options for production environment
# that overrides the default ones
production:
# specific configuration options for development environment
# that overrides the default ones
development:
```
之后使用默认用户名密码登陆admin/admin
## 登录后配置
角色增加:
- Manager
- Developer
- Tester
- Product
- Quality
问题状态增加:
- 新建
- 待审核
- 已指派
- 不处理
- 进行中
- 已解决
- 测试中
- 已验证
跟踪标签增加:
- 里程碑
- 开发
- 需求用例
- 功能
- 缺陷
- 需求单
- 维护单
- 故障单
- 发布申请单
枚举中为问题优先级增加:
- 普通
- 优先
- 紧急
## config/configuration.yml 文件配置
### 附件设置
```yml
attachments_storage_path: /path/to/attachments
attachments_mas_size: 51200
```
### 电子邮件服务器配置
```yml
# For exmail.qq.com
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "smtp.exmail.qq.com"
port: 465
domain: 'smtp.exmail.qq.com'
authentication: login
user_name: 'noreply@xxx.com'
password: '******'
ssl: true
enable_starttls_auto: true
# For smtp.163.com
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "smtp.163.com"
port: 25
domain: 'smtp.163.com'
authentication: :login
user_name: 'noreply@xxx.com'
password: '******'
```
邮件测试redmine 的 配置->邮件通知 页面,设定之后点击“发送测试邮件”即可确认。成功之后,登陆用户会收到从设置的邮箱服务器发来的一封 email否则会在设置页面中提示相关错误。
## 容器配置
### 进入 Redmine 容器命令行
```bash
docker exec -it redmine bash
```
### 安装插件
下载插件到容器的 /usr/src/redmine/plugins 目录中。
执行以下命令:
```bash
bundle install
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=<plugin name>
```
### 插件列表
- [Custom Workflows](https://www.redmine.org/plugins/custom-workflows)
- [Redmine Issue Autoflow](https://redmineplugins.cn/projects/1/plugin_blocks/36?tab=general)
### Custom Workflows 插件
在 管理->Custom Workflows 中 Create a custom workflow。
输入名称,设置 Observable object设置项目。
脚本参考示例如下:
```ruby
if self.status_id==4
self.assigned_to = User.find_by(login: 'lion')
elsif self.status_id==6
self.assigned_to = User.find_by(login: 'rick')
elsif self.status_id==8
self.assigned_to = self.author
end
```
脚本支持直接调用 Redmine App 模块接口,具体 API 参考:<https://github.com/redmine/redmine/tree/master/app/models> 中的文件。