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

393 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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> 中的文件。