My Redmine解約後にデータを確認する方法 ― DockerでRedMicaを起動してバックアップを復元する

活用術

My Redmineを解約したあとでも、「バックアップデータ取得(解約時用)」で取得したデータがあれば、手元のPCで過去のデータを確認できます。

この記事では、Dockerを使ってRedMicaを起動し、My Redmineのバックアップデータを復元する方法を紹介します。

一度環境を作っておけば、常にRedMicaを起動しておく必要はありません。過去のチケットやWiki、添付ファイルなどを確認したくなったときだけ起動することができます。

Dockerコンテナを実行でき、dockerコマンドとdocker composeコマンドを利用できる環境が準備されていることを前提とします。 コマンドは、お使いのDocker環境でdockerコマンドを実行できるターミナルから実行してください。

この記事では、WindowsとMacを対象とします。 特に記載がない限り、掲載しているコマンドはWindowsとMacのどちらでも同じように実行できます。


目次

全体の作業の流れ

My Redmineのバックアップデータを手元のPCで復元し、ブラウザで閲覧するまでの大まかな流れは次のとおりです。

  1. My Redmine(RedMica)のバックアップデータを用意する
  2. Dockerを利用できる状態にする
  3. DockerでRedmicaとデータベースを用意する
  4. My Redmineのバックアップデータを復元する
  5. Redmicaを起動する
  6. ブラウザから過去のデータを確認する

Gen.1とGen.2では利用しているデータベースが異なります。

My Redmine世代 My Redmine URL データベース
Gen.2 https://*****.cloud.redmine.jp/ PostgreSQL
Gen.1 https://my.redmine.jp/*****/ MySQL

この記事では、データベースに関係する部分だけGen.1とGen.2で手順を分けています。それ以外の手順は共通です。

事前に用意するもの

次のものを用意してください。

  • My Redmineのバックアップデータ
  • Dockerを利用できるWindows PCまたはMac

My Redmineのバックアップデータ

オプションサービス「バックアップデータ取得(解約時用)」で取得したデータを使用します。 バックアップには主に次のデータが含まれています。

  • Redmineのデータベース
  • チケットやWikiなどの添付ファイル

データベースの形式はMy Redmineの世代によって異なります。

  • Gen.2: PostgreSQLのダンプデータ
  • Gen.1: MySQLのダンプデータ

以降の手順では、バックアップデータを作業するPCへダウンロード済みであるものとします。

Docker

Dockerコンテナを実行でき、dockerコマンドとdocker composeコマンドを利用できる環境を用意してください。 本記事ではDocker環境そのもののインストール方法は扱いません。

次のコマンドを実行して、DockerとDocker Composeが利用できることを確認します。

docker --version
docker compose version

バージョン情報が表示されれば準備完了です。

RedMicaを動かすためのファイルを用意する

作業用のディレクトリを作成します。

mkdir my-redmine
cd my-redmine

このディレクトリの中に、次のファイルを作成します。

my-redmine/
├── Dockerfile
└── docker-compose.yml

Dockerfileを作成する

RedMicaをDockerで動かすため、Futuremine Technologiesが提供しているDockerイメージ futuremine/RedMica を使用します。

Dockerfileを次の内容で作成します。

FROM futuremine/RedMica:latest
USER root
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    fonts-noto-cjk \
    fontconfig && \
    rm -rf /var/lib/apt/lists/* && \
    fc-cache -fv
USER redmine

このDockerfileでは、RedMicaのイメージに日本語フォントを追加しています。

docker-compose.ymlを作成する

My Redmine Gen.2とGen.1では使用するデータベースが異なるため、利用していた環境に合わせてどちらか一方を使用してください。

なお、使用するRedMicaのコンテナイメージはAMD64プロセッサ向けです。そのため、docker-compose.yml ではRedMicaに platform: linux/amd64 の指定を行っています。Apple Silicon(M1/M2/M3など)を搭載したMac等ではエミュレーション機能で実行されるため、イメージのビルドや起動に時間がかかる場合があります。

パスワードについて 以下の設定例では、手順を分かりやすくするためデータベースのパスワードを redmine としています。実際に利用する際は、適切にパスワードに設定してください。

Gen.2(PostgreSQL)の場合

docker-compose.yml を次の内容で作成します。

services:
  RedMica:
    build: .
    platform: linux/amd64
    ports:
      - "127.0.0.1:3000:3000"
    environment:
      REDMINE_DB_POSTGRES: db
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: redmine
    volumes:
      - ./files:/usr/src/redmine/files
    depends_on:
      - db

  db:
    image: postgres:latest
    environment:
      POSTGRES_DB: redmine
      POSTGRES_USER: redmine
      POSTGRES_PASSWORD: redmine
    volumes:
      - postgres-data:/var/lib/postgresql/data

volumes:
  postgres-data:

Gen.1(MySQL)の場合

docker-compose.yml を次の内容で作成します。

services:
  RedMica:
    build: .
    platform: linux/amd64
    ports:
      - "127.0.0.1:3000:3000"
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: redmine
    volumes:
      - ./files:/usr/src/redmine/files
    depends_on:
      - db

  db:
    image: mysql:lts
    environment:
      MYSQL_DATABASE: redmine
      MYSQL_USER: redmine
      MYSQL_PASSWORD: redmine
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

My Redmineのバックアップデータを復元する

ここから、My Redmineから取得したバックアップデータをDocker環境へ復元します。 まずは、最初にデータベースだけを起動してバックアップを復元し、そのあとRedMicaを起動します。

データベースを起動する

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

docker compose up -d db

データベースが起動したことを確認します。

docker compose ps

db が起動していれば準備完了です。

データベースを復元する

バックアップファイルを Dockerfile や docker-compose.yml と同じディレクトリに置いてから実行してください。

バックアップファイルをコンテナへコピーする

次のコマンドの xxxxx-pgsqldump.sqlc.gz は、バックアップデータに含まれる実際のデータベースバックアップファイル名に変更して下さい。

docker compose cp xxxxx-pgsqldump.sqlc.gz db:/tmp/sqldump.gz

Gen.2(PostgreSQL)の場合

バックアップからデータベースを復元します。

docker compose exec db sh -c 'gzip -dc /tmp/sqldump.gz | pg_restore -U redmine -d redmine --no-owner --no-privileges'

Gen.1(MySQL)の場合

バックアップからデータベースを復元します。

docker compose exec db sh -c 'gzip -dc /tmp/sqldump.gz | mysql -uredmine -p"$MYSQL_PASSWORD" redmine'

添付ファイルを復元する

My Redmineから取得した添付ファイルのバックアップを展開します。 添付ファイルのバックアップは、例えば xxxxx-files.tar のようなファイルです。

このtarファイルには files ディレクトリが含まれているため、my-redmine ディレクトリでそのまま展開します。 ※ xxxxx-files.tar は、バックアップデータに含まれる実際のファイル名に置き換えて下さい。

tar -xf xxxxx-files.tar

ファイルの展開やコピーには、上記のコマンド以外にもWindowsのエクスプローラーやMacのFinder等を利用できます。

最終的に、おおむね次のような構成になります。

my-redmine/
├── Dockerfile
├── docker-compose.yml
└── files/
    ├── 2024/
    ├── 2025/
    └── ...

RedMicaを起動する

データベースと添付ファイルの復元が終わったら、RedMicaを起動します。

docker compose up -d

初回はRedMicaイメージのビルドや起動処理が行われるため、少し時間がかかる場合があります。 状態は次のコマンドで確認できます。

docker compose ps

ログを確認したい場合は次のコマンドを実行します。

docker compose logs -f RedMica

※ログの表示を終了するには、Ctrlキーを押しながらCキーを押します。

起動が完了したら、Webブラウザで次のURLへアクセスします。

http://localhost:3000/

My Redmineで利用していたRedMicaの画面が表示されます。

データを確認する

ログイン後、My Redmineで利用していたデータを確認してください。 例えば次のようなデータを確認できます。

  • プロジェクト
  • チケット
  • チケットのコメントや変更履歴
  • Wiki
  • 添付ファイル
  • ユーザー
  • ワークフローなどの設定

特に、次の点を確認すると、バックアップが正しく復元できたか判断しやすくなります。

  • プロジェクトが表示される
  • 過去のチケットを開ける
  • チケットの履歴を確認できる
  • 添付ファイルを開ける
  • Wikiを表示できる

※My Redmine固有の機能やプラグインについては、元の環境と全く同じ状態にならない場合があります。この記事で作成する環境は、解約後に過去のデータを参照することを主な目的としています。

確認が終わったらRedMicaを停止する

データの確認が終わったら、次のコマンドで停止できます。

docker compose stop

コンテナを停止しても、データベースや添付ファイルのデータは残ります。

再び確認したい場合は、作業用ディレクトリで次のコマンドを実行したあと、再度ブラウザで http://localhost:3000/ にアクセスします。

docker compose start

環境そのものを削除するときの注意

次のコマンドはコンテナを削除しますが、データベースを保存しているDocker volumeは残します。

docker compose down

一方、次のように -v オプションを付けると、データベースを保存しているvolumeも削除されます。

docker compose down -v

-v を付けて削除すると、再び利用するときにはバックアップデータの復元からやり直す必要がありますのでご注意ください。

※添付ファイルはローカルの files ディレクトリに保存されているため削除されません。添付ファイルも含めて完全に削除する場合は、docker compose down -v を実行後に my-redmine ディレクトリ自体を削除してください。

うまくいかないときの確認ポイント

  • Gen.1とGen.2を間違えていないか
    Gen.2ではPostgreSQL、Gen.1ではMySQLを使用しているか再確認してください。
  • Dockerが利用できる状態か
    docker info を実行し、情報が表示されるか確認してください。
  • コンテナやログの状態を確認する
    docker compose ps や docker compose logs RedMica(または db)でエラーログが出ていないか確認してください。
  • 添付ファイルが表示されない
    my-redmine/files/ の構成になっているか確認してください(files/files/ のように二重ディレクトリになっていないか確認)。

まとめ

My Redmineを解約しても、「バックアップデータ取得(解約時用)」でバックアップを取得しておけば、Dockerを使って手元のPCにRedMica環境を作成し、過去のデータを確認できます。

一度環境を作成しておけば常時運用する必要はなく、確認したいときだけ docker compose start で起動し、終わったら docker compose stop で停止できます。

万一夜の解約に備えバックアップデータを保管しておくことで、将来的に過去のチケットやWiki、添付ファイルが必要になった際も安心です。

無料で試してみる(最大2ヶ月無料) お申し込みから10分で使えます
My Redmine サービス紹介資料 サービス紹介・マニュアル・初心者向け資料
My Redmine サービス紹介セミナー
My Redmineのサービス内容・ご利用までの流れを動画で紹介します。ご質問はチャットで受け付けご回答します。
詳細はこちら
Redmineセミナー
Redmineに関するセミナーを開催しています。どなたでもご参加頂けます。過去に開催したセミナーも録画配信しています。
詳細はこちら
無料オンライン相談会
毎週開催。お客様に合った運用や設定を一緒に考えます。サービス紹介、ミニ相談、データ移行専用相談をご用意。
詳細はこちら