プロジェクト管理ツールのRedmineに挫折しそうだから、アジャイルなプロジェクト管理ツールでOSSのRestyaboardを使ってみる【構築】

プロジェクト管理ツールは`Wrike`や`Trello`など魅力的なツールは多くありますが、外部のwebサービスのため、社内で利用するには、導入しづらいところがある。そのため、OSSのプロジェクト管理ツールをいろいろ探している。

現在の主流のOSSプロジェクト管理ツールは`Redmine`なのは間違いないけど、とっつきにくいところが多々あり、もっといいプロジェクト管理ツールはないかなと探してるとOSSでかんばんタイプのプロジェクト管理ツールを３つ見つけた。

- TAIGA
https://taiga.io/

- Wekan (旧LibreBoard)
http://newui.libreboard.com

- Restyaboard
http://restya.com/board/

この中でも、特に多機能な`Restyaboard`を使ってみようと思う。
本記事は`Restyaboard`の構築についてかく。

# インストール環境
CentOS7

#Dockerとdocker-composeをインストール

##Dockerインストール
epelリポジトリからyumでインストールできるけどバージョンが古い場合があるため、docker用のレポジトリを作成し、そこからインストールする。

- レポジトリ作成

```
# tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
```

- Docker パッケージをインストール

```
# yum install docker-engine
```

- Docker デーモンを開始

```
# systemctl start docker.service
```

- dockerが正常にインストールされたか確認するため、コンテナでテスト用イメージを実行

```
# docker run hello-world
Unable to find image 'hello-world:latest' locally
    latest: Pulling from hello-world
    a8219747be10: Pull complete
    91c95931e552: Already exists
    hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
    Digest: sha256:aa03e5d0d5553b4c3473e89c8619cf79df368babd1.7.1cf5daeb82aab55838d
    Status: Downloaded newer image for hello-world:latest
    Hello from Docker.
    This message shows that your installation appears to be working correctly.


    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
            (Assuming it was not already locally available.)
     3. The Docker daemon created a new container from that image which runs the
            executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
            to your terminal.


    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash


    For more examples and ideas, visit:
     http://docs.docker.com/userguide/
```

- dockerグループ作成


dockerデーモンは TCPポートの替わりに Unixソケットをバインドします。デフォルトでは、Unixソケットは rootユーザによって所有されており、他のユーザは sudoでアクセスできます。このため、 dockerデーモンは常にrootユーザとして実行されています。

docker コマンド利用時に sudo を使わないようにするには、 docker という名称のグループを作成し、そこにユーザを追加します。 docker デーモンが起動すると、docker グループの所有者により Unixソケットの読み書きが可能になります。


>docker グループは root ユーザ相当。システム上のセキュリティに対する影響に注意。

docker グループを作成し、ユーザを追加するには、

Centos に sudo 特権のあるユーザでログインします。
docker グループを作成し、ユーザを追加します。

```
$ sudo usermod -aG docker ubuntu

G:プライマリ以外に所属するグループを変更する
```

ログアウトしてから、再度ログインします。
対象ユーザが正しい権限を持つようにするためです。

sudo を使わずに docker が実行できることを確認します。

```
$ docker run hello-world
```




##Dockerインストール時に「--skip-broken」に関するエラーが出力されたときの対処法

`「--skip-broken」`に関するエラーが出力されてしまいインストールできないことがある。

「yum」はインストールやアップデート時などに自動的に依存性を解決するが依存性を解決できないと出力される。

原因として、他のレポジトリと衝突してしまうことと、以前どこかのタイミングでDockerをインストールしていることが原因のようです。

```
# yum list | grep  docker | grep @

※インストールされているdockerに関するパッケージを表示
```
で、出力されたパッケージをremoveするとうまくいくはず

```
# yum remove hoge

※hogeパッケージを削除
```



##docker-composeインストール


最新版を確認しておく
https://docs.docker.com/compose/install/

curlにてインストール

```
 $ curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```

コマンドを実行するために権限変更

```
 chmod +x /usr/local/bin/docker-compose
```

インストール確認のためのテスト

```
$ docker-compose --version
```

#Restyaboardをインストール

- レポジトリからclone

```
# cd /usr/local/
※インストールパス

# git clone https://github.com/namikingsoft/docker-restyaboard.git
# cd docker-restyaboard
```



- 最新版のRestyaboardをビルドするように設定

最新版のバージョンを確認
https://github.com/RestyaPlatform/board/releases

```
# vi Dockerfile
---
ENV restyaboard_version=REPLACE_ME
---
```

- インストール

```
# docker-compose build
# docker-compose up -d
```

docker-compose up -dでイメージのビルドとコンテナ起動を全て自動でやってくれる。 イメージビルドにそこそこ時間が掛かるので注意。


#ブラウザからRestyaboardを確認

```
http://(ServerIP):1234

Username: admin
Password: restya

Username: user
Password: restya
```