Docker

カンバンボード「wekan」をdockerでサクッと構築

Docker

皆さんカンバンボードは使っていますか?

ソフトウェア開発をいわゆる「アジャイル」として行っている方はおなじみの手法だと思います。

通常は物理的なホワイトボードに付箋を張り付けてタスクステータスを管理していることが多いかと思いますが。

ただ、昨今のリモートワークの増加に伴って、私が働いている現場でもソフトウェアツールとしてのカンバンボードを使って開発のプロセスやタスクを記載してプロダクトオーナーやチームメンバー内のタスク管理に利用するようになりました。

今回はOSSで使えるカンバンボードツールである「Wekan」をdockerコンテナで構築する機会があったので紹介いたします。

ソフトウェア開発以外でもカンバンボードのツールはタスク管理として非常に見やすく、操作自体も簡単なので開発以外の職種でも十分に使えると思います。

RedmineでのScrum用のカンバンボードPluginについての以下の記事で試していますので参考にしていただければと思います。

Bitnami RedmineにScrum Redmine Pluginを追加する
https://syachiku.net/docker-bitnami-redmine-scrum-add/

Wekanとは?

Home
The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.jso...

公式サイトから抜粋してみました。

特徴

・Wekanは世界のほとんどの国で使用されています。
・Wekanの最大のユーザーには、社内でWekanを使用している13,000人のユーザーがいます。
・Wekanは約62の言語に翻訳されています。
・特徴:Wekanはリアルタイムのユーザーインターフェースを備えています。
・プラットフォーム:Wekanは多くのプラットフォームをサポートしています。 Wekanは、Wekanが現在統合されている新しいプラットフォームの重要な部分です。

機能

Wekanは、カードベースのタスクとToDo管理を可能にするオープンソースのかんばんボードです。
・Wekanでは、ボードを作成できます。
ボード上で、カードを複数の列の間で移動できます。
・ボードには多くのメンバーを含めることができるため、簡単にコラボレーションできます。
・ボード上で一緒に作業できるはずの全員をボードに追加するだけで、準備完了です。
カードに色付きのラベルを割り当てて、グループ化とフィルタリングを容易にすることができます。
・誰かにタスクを割り当てるために、カードにメンバーを追加することもできます。

Wekanの構築

Wekanはインストーラーとして構築はもちろん、dockerコンテナとして利用できます。

dockerがインストールされている環境であればどこでも可能ですが、今回はWindows上のdocker環境で試してみました。

まだ、docker環境を構築できていない方は以下を参考にどうぞ。

docker-compose.ymlの準備

構築のためにdocker-compose.ymlを用意しますが、公式のサイトにあるdocker-compose.ymlをそのまま使います。

適当なフォルダ(私の場合はC:\Docker\wekan)を作成し、docker-compose.ymlを作成します。

wekan/docker-compose.yml at main · wekan/wekan
The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.jso...

とりあえず、コメントを外したファイルを作成して起動します。
ローカルPC側のポートとして80番ポートを使います。mongodbを利用するようですね。

version: "2"
services:
  wekandb:
    image: mongo:4.4
    container_name: wekan-db
    restart: always
    command: mongod --logpath /dev/null --oplogSize 128 --quiet
    networks:
      - wekan-tier
    expose:
      - 27017
    volumes:
      - wekan-db:/data/db
      - wekan-db-dump:/dump
  wekan:
    image: wekanteam/wekan
    container_name: wekan-app
    restart: always
    networks:
      - wekan-tier
    ports:
      - 80:8080
    environment:
      - MONGO_URL=mongodb://wekandb:27017/wekan
      - ROOT_URL=http://localhost #   <=== using only at same laptop/desktop where Wekan is installed
      - MAIL_URL=smtp://<mail_url>:25/?ignoreTLS=true&tls={rejectUnauthorized:false}
      - MAIL_FROM=Wekan Notifications <noreply.wekan@mydomain.com>
      - WITH_API=true
      - RICHER_CARD_COMMENT_EDITOR=false
      - CARD_OPENED_WEBHOOK_ENABLED=false
      - BIGEVENTS_PATTERN=NONE
      - BROWSER_POLICY_ENABLED=true
    depends_on:
      - wekandb
volumes:
  wekan-db:
    driver: local
  wekan-db-dump:
    driver: local
networks:
  wekan-tier:
    driver: bridge

コンテナの起動

それではコンテナを起動していきます。

// イメージ取得とコンテナ起動
PS C:\Docker\wekan> docker-compose up -d
・
・
Status: Downloaded newer image for wekanteam/wekan:latest
Creating wekan-db ... done
Creating wekan-app ... done

// 起動確認
PS C:\Docker\wekan> docker-compose ps
  Name                 Command               State          Ports
-------------------------------------------------------------------------
wekan-app   node /build/main.js              Up      0.0.0.0:80->8080/tcp
wekan-db    docker-entrypoint.sh mongo ...   Up      27017/tcp

はい、問題なく構築できたようです。簡単ですね。

Wekanへのアクセス

では構築できたWekanへアクセスします。

http://localhostへアクセスするとWekanのログオン画面が表示されます。初期状態ではユーザが居ないので登録をします。

ログオンすると何もない画面が表示されるのでアイテムなどを追加していきます。

テスト的なアイテムを追加してみました。アジャイルで使っているSprintReviewを想定して作ってみました。

ToDo、Doing、Doneというステータスを管理する目的ですがパッと見て非常に見やすいと思いませんか?これらのアイテムをチームメンバー間で簡単に共有することができます。
TeamsのPlannerにはない履歴表示なども機能として備わっているのでいい感じですね。

ラベルの色はもちろん、チェックリストやファイル添付も可能です。

まとめ

今回紹介した以外にもLDAP認証などもできそうですし、色々な機能が備わっているようです。

アジャイル的なチームを作るために有効なツールだと感じました。

Dockerのオススメ勉強方法

私がオススメするDocker初心者向けの最初に購入すべき書籍は「さわって学ぶクラウドインフラ docker基礎からのコンテナ構築です。

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築

本書ではDockerの基本的な概念などの座学ももちろんありますが、実際に、Dockerのインストール方法やWebサーバーをコンテナで構築するハンズオンを通じて学習することができるため、特に初心者の方はは分かりやすい内容となっています。

今回は以上となります。

コメント