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

13 KiB
Raw Permalink Blame History

Docker 方式安装 Redmine

容器名称为 redmine。

# 工作目录
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 初始配置如下:

# = 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

登录后配置

角色增加:

  • Super
  • Manager
  • Developer
  • Tester
  • Product
  • Quality

问题状态增加:

  • 新建
  • 待审核
  • 已指派
  • 不处理
  • 进行中
  • 已解决
  • 测试中
  • 已验证

跟踪标签增加:

  • 里程碑
  • 开发
  • 需求用例
  • 功能
  • 缺陷
  • 需求单
  • 维护单
  • 故障单
  • 发布申请单

枚举中为问题优先级增加:

  • 普通
  • 优先
  • 紧急

config/configuration.yml 文件配置

附件设置

attachments_storage_path: /path/to/attachments
attachments_mas_size: 51200

电子邮件服务器配置

# 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 容器命令行

docker exec -it redmine bash

安装插件

下载插件到容器的 /usr/src/redmine/plugins 目录中。

执行以下命令:

bundle install
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=<plugin name>

插件列表

Custom Workflows 插件

在 管理->Custom Workflows 中 Create a custom workflow。

输入名称,设置 Observable object设置项目。

脚本参考示例如下:

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