Redmine
知名度はプロジェクト管理ツールの中でも相当なものかと思いますが、公式サイトでは以下の機能が参考までに紹介されています。
- Multiple projects support
- Flexible role based access control
- Flexible issue tracking system
- Gantt chart and calendar
- News, documents & files management
- Feeds & email notifications
- Per project wiki
- Per project forums
- Time tracking
- Custom fields for issues, time-entries, projects and users
- SCM integration (SVN, CVS, Git, Mercurial and Bazaar)
- Issue creation via email
- Multiple LDAP authentication support
- User self-registration support
- Multilanguage support
- Multiple databases support
Redmineの日本語コミュニティ
Redmineのクラウドサービス
- My Redmine
- Planio
Redmineの有料プラグイン
- Lychee Redmine - 株式会社アジャイルウェア(大阪)
Redmine以外に私の周囲で使っていると聞くサービス
- Backlog - 株式会社ヌーラボ(福岡)
- JIRA - Attlatian
Redmineのインストール方法
https://www.redmine.org/projects/redmine/wiki/HowTos
- OSはUnix(Solaris, FreeBSD)からLinux(Debian, RHEL)、Windows, MacOSと幅広く対応
過去、起動しないかなと思いつつAWSのt2.micro( 1vCPU, 1GiB )でも起動したことがあります。
とはいえスペックは利用者数とメモリはあるに越したことはないので、4GBあたりはあると不便なく使えるかと思います。
プラットフォームの検討
上記のように、OSへネイティブにインストールするとインストールは楽な一方で、
そのサーバに依存してしまうことから、コンテナを使って移送を容易にできる環境がよいと思います。
Docker Image
Redmine
https://hub.docker.com/_/redmine
実際にやってみる
環境の用意
18.04 LTSは2023年4月にサポート終了しますが、
20.04 LTSは2025年4月にサポート終了となります。
今回Dockerを使うのでDockerが稼働する環境であれば、
OSは問いません。18.04 LTSが手元にあるOSなので使っています。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"
$
SSHで接続できるようにします。
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install openssh-server -y
Docker-Engineのインストール
https://docs.docker.com/engine/install/ubuntu/
公式手順から抜粋して実行します。
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update -y
sudo apt-get install ca-certificates curl gnupg lsb-release git -y
curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] <https://download.docker.com/linux/ubuntu> \\
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Docker Composeのインストール
複数のDockerコンテナを操作できるようにDocker Composeをインストールします。
sudo curl -L "<https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64>" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Docker/Docker-composeの確認
$ docker -v
Docker version 20.10.13, build a224086
$
$ docker-compose -v
Docker Compose version v2.3.3
$
Docker コンテナ作成
参考にするGithub リポジトリ
https://github.com/sameersbn/docker-redmine
作成
cd ~
mkdir docker-data
mkdir docker-data/postgresql
mkdir docker-data/redmine
mkdir docker-data/redmine-logs
git clone <https://github.com/sameersbn/docker-redmine.git>
cd docker-redmine
docker-compose.ymlの編集
vi docker-compose.yml
i : insert モードにして、[:] + [%] + [d] を入力して [Enter] で既に入っている情報を削除し、
貼り付けて [:] + [w] + [q] を入力して [Enter] で保存して終了します。
{{< message_box color="warning" >}}
入力を間違えたときは、 [:] + [q] + [!] を入力して [Enter] で保存しないで終了します。
{{< /message_box >}}
version: '2'
services:
postgresql:
image: sameersbn/postgresql:9.6-4
environment:
- DB_USER=redmine
- DB_PASS=password
- DB_NAME=redmine_production
volumes:
- /home/ubuntu/docker-data/postgresql:/var/lib/postgresql
redmine:
build: ./
image: sameersbn/redmine:4.2.3-2
depends_on:
- postgresql
environment:
- TZ=Asia/Tokyo
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=redmine
- DB_PASS=password
- DB_NAME=redmine_production
- DB_SSL_MODE=prefer
- 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
- SMTP_USER=mailer@example.com
- SMTP_PASS=password
- SMTP_STARTTLS=true
- SMTP_AUTHENTICATION=:login
- IMAP_ENABLED=false
- IMAP_HOST=imap.gmail.com
- IMAP_PORT=993
- IMAP_USER=mailer@example.com
- IMAP_PASS=password
- IMAP_SSL=true
- IMAP_INTERVAL=30
ports:
- "10083:80"
volumes:
- /home/ubuntu/docker-data/redmine:/home/redmine/data
- /home/ubuntu/docker-data/redmine-logs:/var/log/redmine
コンテナの起動
sudo docker-compose up -d
$ sudo docker-compose up -d
[+] Running 3/3
⠿ Network docker-redmine_default Created 0.2s
⠿ Container docker-redmine-postgresql-1 Started 1.1s
⠿ Container docker-redmine-redmine-1 Started 2.1s
$
コンテナの確認
sudo docker-compose ps
$ sudo docker-compose ps
$ sudo docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
docker-redmine-postgresql-1 "/sbin/entrypoint.sh" postgresql running 5432/tcp
docker-redmine-redmine-1 "/sbin/entrypoint.sh…" redmine running 0.0.0.0:10083->80/tcp, :::10083->80/tcp
$
起動しているサーバの port 10083 をコンテナ内部の port 80に転送しているので、http://xxx.xxx.xxx.xxx:10083/
へアクセスしてください。
user/passwordは admin/admin
となっているので、ログイン後にパスワード変更してください。
コンテナの停止
sudo docker-compose stop
$ sudo docker-compose stop
[+] Running 2/2
⠿ Container docker-redmine-redmine-1 Stopped 1.9s
⠿ Container docker-redmine-postgresql-1 Stopped 0.3s
$
Redmineのプラグイン追加
一度、コンテナを起動しているとホスト側に/home/ubuntu/docker-data/redmine/plugins
が作成されているので、プラグインファイルを配置します。
$ pwd
/home/ubuntu/docker-data/redmine/plugins
$
$ ls -l
合計 0
$
- Redmine Banner - Redmineの画面上部にバナーを表示
git clone <https://github.com/akiko-pusu/redmine_banner.git>
- absolute_dates - 標準の相対表示(○日前)を絶対表示(yyyy/mm/dd)
git clone <https://github.com/suer/redmine_absolute_dates.git>
- Redmine Issue Templates - チケットのテンプレートを作成
git clone <https://github.com/akiko-pusu/redmine_issue_templates.git>
- Work Time Plugin - 工数管理
git clone <https://github.com/tkusukawa/redmine_work_time.git>
- Redmine Japanese Help - ヘルプページを日本語サイトへ変更 ※標準では英語
git clone <https://github.com/suer/redmine_japanese_help.git>
- Clipboard image paste - 画像をクリップボードから貼り付けることが可能
git clone <https://github.com/peclik/clipboard_image_paste.git>
プラグインフォルダにダウンロードしたそれぞれのディレクトリが作成されていることを確認し、
作業フォルダに戻り再度コンテナを起動します。
$ pwd
/home/ubuntu/docker-data/redmine/plugins
$
$ ls
clipboard_image_paste redmine_absolute_dates redmine_banner redmine_issue_templates redmine_japanese_help redmine_work_time
$
$ cd ../../../docker-redmine/
$ pwd
/home/ubuntu/docker-redmine
$
$ ls
Changelog.md LICENSE README.md assets docker-compose-mysql.yml docker-compose-ssl.yml entrypoint.sh support
Dockerfile Makefile VERSION docker-compose-mariadb.yml docker-compose-sqlite3.yml docker-compose.yml make_release.sh test
$
$ sudo docker-compose up -d
[+] Running 2/2
⠿ Container docker-redmine-postgresql-1 Started 0.7s
⠿ Container docker-redmine-redmine-1 Started 1.9s
$
http://xxx.xxx.xxx.xxx:10083/
にアクセスして、
管理 > プラグイン に移動すると、先程ダウンロードしたプラグインが読み込まれている状態になっているはずです。
まとめ
Docker/Docker-Composeで起動するので、サーバOSに依存せずに管理できる点は一つのメリットになると思います。
また、Redmine/PostgreSQLのコンテナイメージはすでにありふれているので今回も既に形が出来上がっている状態からでした。
Dockerで運用になれてくれば、kubernetes(k8s)やクラウドが提供するコンテナ環境への移行も容易になります。
まずはサーバへのネイティブインストール、仮想環境(VMware, ESXi, Hyper-V)の依存から脱却に向けて一歩になると思います。
Docker Engineが稼働するホストのバックアップからリストアしても多くは復旧できるとは思いますが、
コンテナごとに保存することも可能なので、これらを組み合わせることでよりデータの保全、移行にも踏み込んで対応が可能になると思います。http://docs.docker.jp/v19.03/engine/reference/commandline/save.html
この記事が誰かの参考になれば幸いです。