Docker で Redmine 4 をセットアップする (試験用)

このページは、Docker の公式イメージ を使用して試験用に Redmine 4 をセットアップする手順をまとめる予定のページです。

注意

手順

1. stack.yml の用意

redmine - Docker Hub にある stack.yml の内容を一部修正してファイル保存します。

stack.yml
version: '3.1'

services:

  redmine:
    image: redmine
    restart: always
    ports:
      - 8080:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: example
      REDMINE_SECRET_KEY_BASE: supersecretkey
      REDMINE_DB_ENCODING: utf8mb4

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: redmine
    ports:
      - 3306:3306
    command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']

※ 上記の設定では DB のユーザー名は root, パスワードは example, データベース名は redmine です。
※ 公式の説明にあるファイルから下記を変更しています。特に文字コードは変更していないと日本語でユーザーの氏名を登録した時などにエラーになります。

項目 補足
redmine
 environment
  REDMINE_DB_ENCODING DB の文字コードを指定
db
 ports localhost:3306 で DB ツールなどからアクセスできるようにする
 command DB の文字コードと照合順序を指定

2. 起動

docker stack deploy -c stack.yml redmine コマンドを実行します。

3. アクセス

http://localhost:8080/ にアクセスして動作を確認します。

  • 補足
    • しばらく待たないとアクセスできない場合があります。
    • 管理者の ID とパスワードは admin です。(ログイン後に変更できます)

文字コードのエラーの例

デフォルト設定のロード時

エラー
デフォルト設定がロードできませんでした: Mysql2::Error: Incorrect string value: '\xE7\xAE\xA1\xE7\x90\x86...' for column 'name' at row 1: INSERT INTO `roles` (`name`, `position`, `issues_visibility`) VALUES ('管理者', 1, 'all')

ユーザーの作成時

エラー
Internal error
An error occurred on the page you were trying to access.
If you continue to experience problems please contact your Redmine administrator for assistance.

If you are the Redmine administrator, check your log files for details about the error.
エラーの意訳
内部エラー
アクセスしようとしたページでエラーが発生しました。
引き続き問題が発生する場合は、Redmineの管理者にお問い合わせください。

Redmine 管理者の場合は、ログファイルでエラーの詳細を確認してください。

参考

公式説明の stack.yml

記載時点 (2020/05/02) の公式説明の stack.yml
version: '3.1'

services:

  redmine:
    image: redmine
    restart: always
    ports:
      - 8080:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: example
      REDMINE_SECRET_KEY_BASE: supersecretkey

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: redmine