====== Docker Redmine 公式イメージを使った構築 ======
===== オフィシャルイメージ =====
こちらのサイトを参考に、docker-compose.yml を作成
https://hub.docker.com/_/redmine
===== docker-compose.yml =====
パスワードなどは、適宜変更する。
また、一旦起動した後に再起動する場合は、REDMINE_NO_DB_MIGRATE を設定しないと、DB 内容が消えてしまう。。。
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_NO_DB_MIGRATE: 1
    volumes:
      - redmine-files:/usr/src/redmine/files
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: redmine
    volumes:
      - redmine-db:/var/lib/mysql
volumes:
  redmine-db:
  redmine-files:
起動後に admin ユーザーの姓・名を変更しようとすると、エラーになる。。。
ActiveRecord::StatementInvalid: 
Mysql2::Error: Incorrect string value: '\x..\x..'
どうやらマルチバイト文字を保存しようとすると、エラーになる模様。。。
ネットを探すと、同じような症状の方の対策があったため、修正を実施。
===== 修正用SQL =====
alter database redmine CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
alter table ar_internal_metadata convert to character set utf8mb4;
alter table attachments convert to character set utf8mb4;
alter table boards convert to character set utf8mb4;
alter table changes convert to character set utf8mb4;
alter table changeset_parents convert to character set utf8mb4;
alter table changesets convert to character set utf8mb4;
alter table changesets_issues convert to character set utf8mb4;
alter table comments convert to character set utf8mb4;
alter table custom_field_enumerations convert to character set utf8mb4;
alter table custom_fields convert to character set utf8mb4;
alter table custom_fields_projects convert to character set utf8mb4;
alter table custom_fields_roles convert to character set utf8mb4;
alter table custom_fields_trackers convert to character set utf8mb4;
alter table custom_values convert to character set utf8mb4;
alter table documents convert to character set utf8mb4;
alter table email_addresses convert to character set utf8mb4;
alter table enabled_modules convert to character set utf8mb4;
alter table enumerations convert to character set utf8mb4;
alter table groups_users convert to character set utf8mb4;
alter table import_items convert to character set utf8mb4;
alter table imports convert to character set utf8mb4;
alter table issue_categories convert to character set utf8mb4;
alter table issue_relations convert to character set utf8mb4;
alter table issue_statuses convert to character set utf8mb4;
alter table issues convert to character set utf8mb4;
alter table journal_details convert to character set utf8mb4;
alter table journals convert to character set utf8mb4;
alter table member_roles convert to character set utf8mb4;
alter table members convert to character set utf8mb4;
alter table messages convert to character set utf8mb4;
alter table news convert to character set utf8mb4;
alter table open_id_authentication_associations convert to character set utf8mb4;
alter table open_id_authentication_nonces convert to character set utf8mb4;
alter table projects convert to character set utf8mb4;
alter table projects_trackers convert to character set utf8mb4;
alter table queries convert to character set utf8mb4;
alter table queries_roles convert to character set utf8mb4;
alter table repositories convert to character set utf8mb4;
alter table roles convert to character set utf8mb4;
alter table roles_managed_roles convert to character set utf8mb4;
alter table schema_migrations convert to character set utf8mb4;
alter table settings convert to character set utf8mb4;
alter table time_entries convert to character set utf8mb4;
alter table tokens convert to character set utf8mb4;
alter table trackers convert to character set utf8mb4;
alter table user_preferences convert to character set utf8mb4;
alter table users convert to character set utf8mb4;
alter table versions convert to character set utf8mb4;
alter table watchers convert to character set utf8mb4;
alter table wiki_content_versions convert to character set utf8mb4;
alter table wiki_contents convert to character set utf8mb4;
alter table wiki_pages convert to character set utf8mb4;
alter table wiki_redirects convert to character set utf8mb4;
alter table wikis convert to character set utf8mb4;
alter table workflows convert to character set utf8mb4;
===== メール送信設定 =====
メールの設定は、/usr/src/redmine/config/configuration.yml に記述する。
とりあえず、docker-compose.yml を置いたディレクトリに configuration.yml を作成
default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "smtp.your.external.server"
      port: 587
      authentication: :login
      domain: 'my.domain.net'
      user_name: 'smtp_user_name'
      password: 'smtp_user_password'
これを docker-compose で読み込むよう、ボリュームマッピングする。
version: '3.1'
services:
  redmine:
    ...
    volumes:
      - ./configuration.yml:/usr/src/redmine/config/configuration.yml
      - redmine-files:/usr/src/redmine/files
===== Todos =====
  * Nginx 経由の Reverse Proxy で SSL 化する
  * 定期バックアップを取得する