DockerでRedmine環境構築

前提

・Dockerが、すでにインストールされていること。

はじめに

今回、docker-compose.yml作成を行います。
以下、やることの目標になります。
・Dockerを使ってRedmineを作る
プラグインを入れる

基本的な事は、公式に書いてあるので参照していただければ幸いです。
Redmine公式はこちら

ディレクトリ構成

手始めに、作業ディレクトリとして以下のように、
フォルダを作成して頂くとスムーズかと思います。

redmine
├── mysql_data
└── redmine_data
    ├── plugins
    └── themes

Dockerを使ってRedmineを作る

準備

公式のymlを参考に作ります。(バージョンの固定とポート、DBパスワードのみ修正)
以下のdocker-compose.ymlを作成すれば、ここでの作業は、完了になります。
ディレクト

redmine
├── docker-compose.yml ←追加
├── mysql_data
└── redmine_data
    ├── plugins
    └── themes

・docker-compose.yml

version: '3.1'

services:

  redmine:
    image: redmine:4.0.3
    restart: always
    ports:
      - 3000:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: password

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

実行

以下、コマンドを打ちます。
(完了まで少し時間が掛かると思う。)

$ cd 配置場所までのパス/redmine
$ docker-compose up

ブラウザで「localhost:3000」にアクセスしてみましょう。
見慣れたredmineの画面が表示されるはずです。
確認後、ターミナル(パワーシェル)で「ctrl + c」で停止します。

プラグインを入れる

準備

コマンドを打ち込んで入れるのも面倒なので、ローカル環境にマウントしてみましょう。
(ついでにテーマも!)
これで、入れる準備は完了です。
・docker-compose.yml

version: '3.1'

services:

  redmine:
    image: redmine:4.0.3
    restart: always
    ports:
      - 3000:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: password
    volumes:
      - ./redmine_data/plugins:/usr/src/redmine/plugins ←追加
      - ./redmine_data/themes:/usr/src/redmine/public/themes ←追加

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

プラグイン配置

マウントしたフォルダにプラグインを配置しましょう。

redmine
├── docker-compose.yml
├── mysql_data
└── redmine_data
    ├── plugins
    │    ├── easy_gantt ←追加
    │    └── redmine_issue_templates ←追加
    └── themes

DB作成

作成したイメージを動かしてみましょう。
おそらくエラーが出始めるので、一旦置いておきます。
(原因は、テーブルが足りないからです。)

$ cd 配置場所までのパス/redmine
$ docker-compose up

次に、別ターミナルを開きます。 以下、コマンドを実行しましょう。
(easy_ganttしか載せていませんが、プラグインのReadMeを見て必要なら他のプラグインにも実行してください。)

$ docker ps
$ docker exec -it コンテナID(一番左に表示されてる) bash
root@コンテナID:/usr/src/redmine# cd /usr/src/redmine/plugins
root@コンテナID:/usr/src/redmine# cd easy_gantt(対象プラグインのフォルダ)
root@コンテナID:/usr/src/redmine# rake redmine:plugins:migrate RAILS_ENV=production

放置していたターミナル(パワーシェル)上で、「ctrl + c」を押して停止します。
停止できたら再度、起動します。
これで、エラーが出ていなければ完了です。
お疲れ様でした。
(Redmineの画面で、プラグインが入っていることの確認を忘れずにね。)

$ docker-compose up