Dockerを使ったRedmine環境の構築

概要

Redmineの公式Dockerイメージと、MySQLの公式Dockerイメージを使用して、Hyper-vに立てたAlpine上にRedmine環境を構築した時のメモです。
仕事でRedmineを使うことが多く、自分が好きにいじれる環境が欲しかったのと、DockerやDocker-composeの勉強もしたかったので、試しに作ってみました。

成果物

今回作成した成果物をGithubで公開しています。

参考サイト

下記のサイトを参考にしました、感謝。

Redmineの構築に関して

Redmineのプラグインに関して

Docker Redmineの構成

構成情報

  • ホストPC: Alpine Standard 3.18.5 (Hyper-V上で稼働)
    追加でインストールしたパッケージは次の通り
    • git
    • docker
    • docker-compose
  • Redmineイメージ: redmine:5.1.1-alpine3.18
  • MySQLイメージ: mysql:5.7
  • Redmineのテーマ: RedmineUP A1
  • Redmineのプラグイン: happy-se-life/kanban

docker-compose.ymlの内容

今回作成した docker-compose.yml は下記のものになります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
version: '3.8'

services:
redmine:
image: redmine:5.1.1-alpine3.18
container_name: redmine
restart: always
depends_on:
- mysql
ports:
- 3000:3000
environment:
REDMINE_DB_MYSQL: mysql
REDMINE_DB_USERNAME: redmine_db_user
REDMINE_DB_PASSWORD: redmine_db_password
REDMINE_DB_DATABASE: redmine
REDMINE_DB_ENCODING: utf8mb4
REDMINE_DB_PORT: 3306
volumes:
- redmine-files:/usr/src/redmine/files
- redmine-plugins:/usr/src/redmine/plugins
- redmine-themes:/usr/src/redmine/public/themes

mysql:
image: mysql:5.7
container_name: mysql
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: SuperPassword1234
MYSQL_DATABASE: redmine
MYSQL_USER: redmine_db_user
MYSQL_PASSWORD: redmine_db_password
volumes:
- mysql-data:/var/lib/mysql/
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

volumes:
redmine-files:
name: redmine-files
redmine-plugins:
name: redmine-plugins
redmine-themes:
name: redmine-themes
mysql-data:
name: mysql-data

なるべく少ないハードウェアリソースで動作してほしかったので、ホストもRedmineコンテナもAlpineにしました。
実際に軽量で動いてくれているのかはよくわかりませんが、2コア、2GBメモリーで動いているので問題なしとしています。

文字コードはutf8mb4を指定しないと、日本語でエラーが出たので設定しました。

environment 周りはデフォルトと同じ値をセットしている部分もあり、省略できるのですが、何を設定したのか忘れそうだったので書きました。

プラグインとテーマのインストール手順

GithubのREADMEには書かなかったのですが、プラグインとテーマのインストール手順を記録しておきます。

kanbanプラグインのインストール手順

  1. 通常ユーザーにはDockerのVolume領域の権限が無いので、Super Userになっておきます。
  2. Redmine の Plugins フォルダに移動します。
    1
    # cd /var/lib/docker/volumes/redmine-plugins/_data
  3. kanban プラグインをクローンします。
    1
    # git clone https://github.com/happy-se-life/kanban.git
    git をインストールしてない場合は、zipでダウンロードしてunzipしてください。
    1
    2
    3
    # wget https://codeload.github.com/happy-se-life/kanban/zip/refs/heads/master -O kanban.zip
    # unzip kanban.zip
    # mv kanban-master /var/lib/docker/volumes/redmine-plugins/_data/kanban
  4. Redmine をリスタートします。
    1
    docker-compose restart

A1テーマのインストール手順

  1. RedmineUPのサイトから無料ダウンロードします。
  2. scp などでホストのAlpineへ転送します。
  3. Redmine の Theme フォルダへコピーします。
    1
    cp -r a1 /var/lib/docker/volumes/redmine-themes/_data
  4. Redmine をリスタートします。
    1
    docker-compose restart
    プラグインと違って、テーマはRedmineを再起動しなくても読み込まれる模様ですが、
    あまりよくわかっていません・・・。

やり残したこと

いくつかやりたいことがあるので、そのうち続きを書こうと思います。

  • RedmineのHTTPS対応
  • 自動バックアップ
  • バックアップからのリストア
  • Redmineのバージョンアップ
  • MySQLのバージョンアップ
  • Redmineのトラッカーやカスタムフィールドやステータス設定をコード化