脱BackLogsスクラム開発(Ubuntu18.04 + sameersbn/Redmine3.4.6 + Scrum)


背景・目的

Redmineでスクラム開発というとBackLogsプラグインが定番だが、Redmine3に正式には対応しておらず、何かと問題が発生する。
また、RedmineUPのAgileプラグインはLite版だと最低限のことしかできない。
Redmine公式のPluginsを探すとScrumというプラグインが3.4.xに対応しており評価も高いが、日本語の情報が少ないため設定のメモを残す。

Ubuntu

Docker

Dockerのインストール1

Ubuntu18.04のaptでインストール可能なDockerはver.1.5と古いため、以下の手順でdocker-ceをインストールする。

$ sudo apt-get update
$ sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install -y docker-ce

sudoなしでdockerの実行2

$ sudo usermod -aG docker $USER

Redmine

sameersbn/redmine

docker-compose.yml

公式のdocker-compose-mysql.ymlvolumes周りを多少変更。
プラグインとテーマは個別に入れ替えることが多いので別ボリューム。

docker-compose.yml
version: '2'

services:
  mysql:
    image: sameersbn/mysql:5.7.22-1
    environment:
      - DB_USER=redmine
      - DB_PASS=password
      - DB_NAME=redmine_production
    volumes:
      - ./mysql:/var/lib/mysql

  redmine:
    image: sameersbn/redmine:3.4.6
    depends_on:
      - mysql
    environment:
      - TZ=Asia/Tokyo

      - DB_ADAPTER=mysql2
      - DB_HOST=mysql
      - DB_PORT=3306
      - DB_USER=redmine
      - DB_PASS=password
      - DB_NAME=redmine_production

      - REDMINE_PORT=10083
      - REDMINE_HTTPS=false
      - REDMINE_RELATIVE_URL_ROOT=
      - REDMINE_SECRET_TOKEN=

      - REDMINE_SUDO_MODE_ENABLED=false
      - REDMINE_SUDO_MODE_TIMEOUT=15

      - REDMINE_CONCURRENT_UPLOADS=2

      - REDMINE_BACKUP_SCHEDULE=
      - REDMINE_BACKUP_EXPIRY=
      - REDMINE_BACKUP_TIME=

      - SMTP_ENABLED=false
      - SMTP_METHOD=smtp
      - SMTP_DOMAIN=www.example.com
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - [email protected]
      - SMTP_PASS=password
      - SMTP_STARTTLS=true
      - SMTP_AUTHENTICATION=:login

      - IMAP_ENABLED=false
      - IMAP_HOST=imap.gmail.com
      - IMAP_PORT=993
      - [email protected]
      - IMAP_PASS=password
      - IMAP_SSL=true
      - IMAP_INTERVAL=30

    ports:
      - "10083:80"
    volumes:
      - ./redmine:/home/redmine/data
      - ./redmine/plugins:/home/redmine/redmine/plugins
      - ./redmine/public/themes:/home/redmine/redmine/public/themes

Proxy環境下の時はredmineenvironmentに以下を追記する。

      - HTTP_PROXY=http://proxy.example.com
      - HTTPS_PROXY=http://proxy.example.com
      - NO_PROXY=localhost,127.0.0.1
      # ホストに環境変数が設定してある場合以下でもよい
      #- HTTP_PROXY=${HTTP_PROXY}
      #- HTTPS_PROXY=${HTTPS_PROXY}
      #- NO_PROXY=${NO_PROXY}

コンテナ作成・起動

適当な場所にインストールディレクトリを作成。
今回は/srv/docker/redmine/とする。
上記のdocker-compose.yml/srv/docker/redmine/に置く。

$ cd /srv/docker/redmine
$ docker-compose up -d

Redmine初期設定

  1. http://[DockerホストのIP]:10083でRedmineに接続
  2. ログインID:admin、パスワード:adminでログイン
  3. 適当に初期設定

Scrumプラグイン

インストール

sameersbn/redmineなら展開したディレクトリをpluginsディレクトリに置いてDockerを再起動するだけでいいはず。

上記のdocker-compose.yml通りにホストのディレクトリをマウントしているならば以下。

$ mv /path/to/Scrum /srv/docker/redmine/redmine/plugins/

直接転送するなら以下でもよい。

$ docker cp -r /path/to/Scrum redmine_redmine_1:/home/redmine/redmine/plugins/

pluginsディレクトリに置いたらDockerを再起動。

$ docker-compose restart

Redmine設定

必要となる権限、ステータス、カスタムフィールド、トラッカー等を設定する。

管理者権限ユーザーでログインし、管理画面から以下を設定する。

  1. ロールと権限

    権限レポートからScrumの項目を設定する。

  2. チケットのステータス

    バックログ用のステータスを作成する。
    ※不要なステータスも削除しているが、Scrum側の設定で表示しないことも可能

  3. カスタムフィールド

    ・Blocked: かんばんの付箋の移動を制御する真偽値

    ・StoryPoints: ストーリーポイントのリスト
          ※慣例に倣ってフィボナッチ数列

  4. トラッカー

    BackLogsでよく設定されているストーリートラッカーと同じもの。

    タスクに関しては、BackLogsと同じくタスクトラッカーを別途作成しても、デフォルトのバグ機能を使用してもよい。

Scrum設定

Scrumプラグインの設定を行う。
管理画面 → プラグイン → Scrum Redmine plugin

設定例

プロジェクト設定

プロジェクトの設定からScrumモジュールをONにして、Product backlogsSprintsを作成する。

・Product backlogs

・Sprints

これで正常に動くはず。

後は、プロジェクトのSprintBacklogでストーリーやタスクを追加する。
タスクはストーリーの子チケットとして作成される。