🐳

DockerでRedmineを楽々構築・運用する方法

に公開

この記事は

Redmine Advent Calendar 2025の12/7の記事です。
https://adventar.org/calendars/11694

Docker ComposeでRedmineを簡単に構築する方法を紹介します。
Redmineを使ってみたいけど、セットアップが面倒だと感じている方はお試しください。

前提条件

Dockerがインストールされていること。

WindowsやMacのDocker Desktop等、またはLinuxでDockerとDocker Composeが利用可能な環境を用意してください。

LinuxへのDockerインストール手順については以前に書いた記事を参考にしてください。

https://zenn.dev/haru_iida/articles/docker_one_liner_install

細かい説明は不要なので、手っ取り早く起動したい

細かい説明は省くと、以下の3行のコマンドでRedmineを構築、起動できます。

git clone https://github.com/haru/redmine-compose.git
cd redmine-compose
docker compose up

実行すると、数分で以下のような出力が出ます。

redmine-1  | Puma starting in single mode...
redmine-1  | * Puma version: 7.1.0 ("Neon Witch")
redmine-1  | * Ruby version: ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [aarch64-linux]
redmine-1  | *  Min threads: 0
redmine-1  | *  Max threads: 5
redmine-1  | *  Environment: production
redmine-1  | *          PID: 1
redmine-1  | * Listening on http://0.0.0.0:3000
redmine-1  | Use Ctrl-C to stop

ブラウザで http://localhost:3000 にアクセスすると、Redmineのログイン画面が表示されます。

Top Page

redmine-composeとは

Docker ComposeでRedmineを簡単に起動するためのテンプレートです。

https://github.com/haru/redmine-compose

  • DBはPostgreSQLを使用
  • 環境変数による簡単な設定
  • バックアップはディレクトリをコピーするだけ
  • プラグインとテーマの追加が可能
  • Redmineのバージョンアップも簡単

ディレクトリ構成

リポジトリには以下のファイルとディレクトリが含まれています。

redmine-compose/
├── docker-compose.yml      # Docker Compose設定ファイル
├── .env.example            # 環境変数のテンプレート
├── db_data/                # PostgreSQLのデータ(自動生成)
├── files/                  # Redmineのアップロードファイル(自動生成)
├── plugins/                # Redmineのプラグイン(自動生成)
└── themes/                 # Redmineのテーマ(自動生成)

Docker Imageについて

Redmineイメージ

Docker Hubの公式Redmineイメージを使用しています。

https://hub.docker.com/_/redmine

Redmine本体の新しいバージョンがリリースされると、数日後に公式イメージも更新されます。

PostgreSQLイメージ

Docker Hubの公式PostgreSQLイメージを使用しています。
https://hub.docker.com/_/postgres

セットアップ手順

手順1: リポジトリをクローン

まず、GitHubからリポジトリをクローンします。

git clone https://github.com/haru/redmine-compose.git
cd redmine-compose

手順2: 環境変数ファイルを作成

.env.exampleをコピーして.envファイルを作成します。(無くてもデフォルト値で動きますが、REDMINE_SECRET_KEY_BASEを設定するために作成することをお勧めします。)

cp .env.example .env

作成された.envファイルの内容は以下のようになっています。

.env
REDMINE_VERSION=latest
REDMINE_PORT=3000
DB_USER=redmine
DB_PASSWORD=password
# DB_NAME=redmine
REDMINE_SECRET_KEY_BASE=your-secret-key-base-here

手順3: セキュリティキーを生成

Redmineのセッション暗号化に使用する秘密鍵を生成します。

以下のコマンドを実行します。

openssl rand -hex 64

実行結果として64文字の16進数文字列が出力されます。

a1b2c3d4e5f6...(64文字の16進数)

この文字列を.envファイルのREDMINE_SECRET_KEY_BASEに設定します。

.env
REDMINE_SECRET_KEY_BASE=a1b2c3d4e5f6...(生成された文字列)

なお、必要に応じてREDMINE_PORTやデータベースのパスワードも変更してください。

手順4: Redmineを起動

以下のコマンドでRedmineとPostgreSQLを起動します。

docker compose up -d

初回起動時はDockerイメージのダウンロードとデータベースの初期化が行われるため、数分かかることがあります。

起動状態を確認するには以下のコマンドを実行します。

docker compose ps

以下のように表示されれば起動成功です。

$ docker compose ps
NAME                        IMAGE            COMMAND                   SERVICE   CREATED          STATUS          PORTS
redmine-compose-db-1        postgres:14      "docker-entrypoint.s…"   db        15 minutes ago   Up 11 minutes   5432/tcp
redmine-compose-redmine-1   redmine:latest   "/docker-entrypoint.…"   redmine   11 minutes ago   Up 11 min

手順5: Redmineにアクセス

ブラウザで以下のURLにアクセスします。(PORTを変更した場合は適宜修正してください。)

http://your-server:3000

Redmineのログイン画面が表示されます。

デフォルトの管理者アカウントでログインできます。

  • ユーザー名: admin
  • パスワード: admin

初回ログイン後、パスワードの変更を求められます。セキュリティのため必ず変更してください。

これでRedmineのセットアップは完了です。

カスタマイズ

Redmineバージョンの指定

特定のバージョンのRedmineを使用したい場合は、.envファイルで指定できます。

.env
REDMINE_VERSION=6.0

変更後、以下のコマンドで再起動します。

docker compose down
docker compose up -d

プラグインの追加

Redmineプラグインを追加する場合は、plugins/ディレクトリにプラグインのファイルを配置します。

プラグイン追加後、Redmineコンテナを再起動してください。bundle installとマイグレーションは自動で実行されます。

docker compose restart redmine

一般的なインストール方法のプラグインでしたらこの方法で追加できます。

テーマの追加

Redmineのテーマを変更する場合は、themes/ディレクトリにテーマファイルを配置します。

cd themes/
git clone https://github.com/テーマ作者/テーマ名.git

テーマ追加後、Redmineを再起動します。

docker compose restart redmine

ちなみに、Redmine 6.0未満のバージョンを使用する場合、テーマのマウントパスを変更する必要があるため、READMEを参照してください。

メールサーバーの設定

Redmineからのメール送信をする設定はconfiguration.ymlを編集します。
redmine-composeディレクトリ直下にconfiguration.ymlを作成し、メールサーバーの設定を記載後、docker-compose.yml内でマウントします。

以下のようにコメントアウトされている部分を有効にします。

変更前:

docker-compose.yml
    volumes:
      - ./files:/usr/src/redmine/files
      - ./plugins:/usr/src/redmine/plugins
      - ./themes:/usr/src/redmine/themes
      # - ./configuration.yml:/usr/src/redmine/config/configuration.yml

変更後:

docker-compose.yml
    volumes:
      - ./files:/usr/src/redmine/files
      - ./plugins:/usr/src/redmine/plugins
      - ./themes:/usr/src/redmine/themes
      - ./configuration.yml:/usr/src/redmine/config/configuration.yml

変更後、Redmineに反映するために再起動します。

docker compose up -d

configuration.ymlの書き方は以下を参考にしてください。

https://www.redmine.org/projects/redmine/wiki/EmailConfiguration

運用管理

ログの確認

Redmineのログを確認するには以下のコマンドを実行します。

docker compose logs -f redmine

データベースのログを確認する場合は以下のコマンドです。

docker compose logs -f db

バックアップ

以下のようにして、redmine-compose/ディレクトリ全体をコピーするだけでバックアップが取得できます。他のマシンに持って行っても、そのまま動作します。

cp -pr redmine-compose/ backup/backup_$(date +%Y%m%d)

データベースのダンプを取得する方法もあります。

docker compose exec db pg_dump -U redmine redmine > redmine_$(date +%Y%m%d).sql

アップグレード

Redmineをアップグレードする場合は、必ず事前にバックアップを取得してください。

latestタグを使用している場合

docker compose pull
docker compose down
docker compose up -d

特定バージョンを使用している場合

.envファイルのREDMINE_VERSIONを変更してから、上記と同じコマンドを実行します。

起動と停止

一度起動すると、マシンを再起動すると自動的にRedmineも起動します。

Redmineを停止する場合は以下のコマンドを実行します。

docker compose stop

一度止めると、マシンを再起動しても自動的には起動しません。再度起動する場合は以下のコマンドを実行します。

docker compose up -d

まとめ

Redmineを試してみたい方や、開発環境として使いたい方にとって便利なテンプレートです。ぜひ活用してみてください。

Discussion