Redmine 6.1 をDockerで動かす手順(Docker Compose / PostgreSQL)

 •  分類: ,  •  本村真一

Docker と Docker Compose を使って Redmine 6.1 系を起動する手順です。

本手順では、DB パスワードや secret_key_base といった機密情報の取り扱いに Docker Secrets を利用します。

Redmineとは:
Redmineはオープンソースのプロジェクト管理ソフトウェアです。オンプレミスのサーバなど自分で用意した環境に自由にインストールできるほか、 クラウドサービス の利用も可能です。Redmineについて詳しくは Redmine.JP をご覧ください。

本手順で作成される環境

項目 内容
Redmine 6.1.1(redmine:6.1.1 をベースにビルド)
DB PostgreSQL 16(postgres:16-bookworm
コンテナ実行 Docker Engine + Docker Compose v2
公開ポート http://localhost:8080(ホストの8080 → コンテナの3000)
永続化 Docker volumes(DB / 添付ファイル / プラグイン / テーマ)
機密情報 Docker Secrets(ホスト上はファイルで管理)

事前準備

  • Docker Engine と Docker Compose v2 が利用できること(docker compose version が動く)
  • openssl が利用できること(Secrets の生成に使用)
  • ホスト側で 8080 ポートが空いていること

以降の作業は、任意の作業ディレクトリで実行します(例: ~/redmine)。

セットアップ手順

1. 作業用ディレクトリを作成する

mkdir redmine
cd redmine

2. Docker Secrets 用の機密情報ファイルを作成する

DB パスワードと Redmine の secret_key_base を生成し、ファイルに保存します。

# DB パスワード(24文字)を生成して保存
openssl rand -base64 24 | tr -dc 'a-zA-Z0-9' | head -c 24 > db_password.txt

# secret_key_base(128文字相当)を生成して保存
openssl rand -hex 64 > secret_key_base.txt

作成したファイルは機密情報そのものです。第三者に読まれないように権限を設定します。

chmod 600 db_password.txt secret_key_base.txt

Git などでバージョン管理する場合は、必ずコミット対象から外してください(例: .gitignore に追記)。

db_password.txt
secret_key_base.txt

3. Dockerfile を作成する(日本語PDF出力の文字化け対策)

Redmine のガントチャート等を PDF 出力した際に、日本語が「□□□」のように表示されるのを防ぐためのフォントを追加します。Dockerfile(拡張子なし)を作成し、以下を保存します。

FROM redmine:6.1.1

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

4. docker-compose.yml を作成する

docker-compose.yml を作成し、以下を保存します。

networks:
  redmine_network:
    driver: bridge

volumes:
  postgres_data:
  redmine_files:
  redmine_plugins:
  redmine_themes:

secrets:
  db_password:
    file: ./db_password.txt
  secret_key_base:
    file: ./secret_key_base.txt

services:
  postgres:
    image: postgres:16-bookworm
    container_name: redmine_postgres
    restart: always
    networks:
      - redmine_network
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: redmine_user
      POSTGRES_DB: redmine_production
      POSTGRES_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_password
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U redmine_user -h localhost"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

  redmine:
    build: .
    container_name: redmine_app
    restart: always
    ports:
      - "8080:3000"
    networks:
      - redmine_network
    depends_on:
      postgres:
        condition: service_healthy
    volumes:
      - redmine_files:/usr/src/redmine/files
      - redmine_plugins:/usr/src/redmine/plugins
      - redmine_themes:/usr/src/redmine/themes
    environment:
      REDMINE_DB_POSTGRES: postgres
      REDMINE_DB_DATABASE: redmine_production
      REDMINE_DB_USERNAME: redmine_user
      REDMINE_DB_PASSWORD_FILE: /run/secrets/db_password
      REDMINE_SECRET_KEY_BASE_FILE: /run/secrets/secret_key_base
      TZ: Asia/Tokyo
      REDMINE_PLUGINS_MIGRATE: "1"
    secrets:
      - db_password
      - secret_key_base

5. コンテナを起動する

docker compose up -d

※初回は DB イメージのダウンロードや、フォントを組み込んだ Redmine のビルドが走るため、数分かかる場合があります。

起動状態を確認します。

docker compose ps

redmine_appredmine_postgresSTATUSUp(または running)であれば成功です。

6. 日本語初期データを投入する

デフォルトの「チケットの種類」や「ステータス」などを日本語で投入します。

docker compose exec redmine bash -lc '
  export REDMINE_DB_PASSWORD="$(cat /run/secrets/db_password)"
  export SECRET_KEY_BASE="$(cat /run/secrets/secret_key_base)"
  env RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
'

特にエラーが出ずにプロンプトへ戻れば完了です。

7. ブラウザでアクセスする

ブラウザで以下へアクセスします。

  • http://localhost:8080

初期ログイン情報は以下です。

  • ログインID: admin
  • パスワード: admin

初回ログイン直後にパスワード変更が求められるので、任意の強力なパスワードに変更してください。

日常運用(停止・再開)

※必ず、この手順で作成した redmine ディレクトリで実行してください。

終了(停止して削除)

コンテナを停止して削除します(データは volumes に残るため消えません)。

docker compose down

再開

停止した状態から再び起動します。

docker compose up -d

docker-compose.ymlDockerfile を変更した場合は、docker compose down の後に docker compose up -d --build で反映してください。

作成: 2026-03-06 16:00  •  分類: ,