LoginSignup
5
8

More than 5 years have passed since last update.

Redmineプラグインの開発環境構築

Last updated at Posted at 2017-10-21

ある日突然、Redmineプラグイン開発をすることがあるかもしれません。
開発方法の詳細は調べる必要があるとしても、環境ぐらいは簡単に作りたいものです。
開発環境の構築方法です。

環境

  • MacOS Sierra Version 10.12.6
  • Docker Version 17.09.0-ce-mac35 (19611)
  • Redmine 3.4.2

手順

docker-compose

データベースのインストールや初期構築の手間を省くために公式dockerイメージを使います。
docker-compose で構築した環境で redmine プラグインを開発しはじめる例 - Qiitaを参考にします。

docker-compose.yml
version: '3.1'
services:
  redmine:
    image: redmine
    ports:
      - 80:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: redmine
    volumes:
      - ./work:/usr/src/redmine/plugins/redmine_plugin_of_yours/
      - ./log:/usr/src/redmine/log
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: redmine
      MYSQL_DATABASE: redmine
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci

工夫した点

  • library/redmine - Docker Hubの例ではREDMINE_DB_PASSWORDexampleです。そのままでは動かないのでredmineに変更します(開発環境ですので、パスワードは公開しても痛くも痒くもありません)。
  • 作業ディレクトリ配下のworkディレクトリにRedmineプラグインのディレクトリを用意します。Redmine本体は変更しません。プラグインのディレクトリだけマウントすれば十分です。
  • logディレクトリもマウントします。Redmineは原則prodcution環境で動かします。起きた例外はこのディレクトリに出力されるproduction.logファイルで確認します。
  • dbコンテナへの依存をdepends_onで明記します。プラグイン開発時は変更するたびに再起動します。起動時にredmineコンテナを明示的に指定して、再起動時にRedmineプロセスのみ再起動できるようにします。
  • dbコンテナのcommandについては後述します。

注意点

  • Docker For Macは管理者権限を与えているため80番ポートで起動できます。80番ポートでの起動が面倒な場合は任意のポートに変えてください。

Redmine起動

docker-compose up redmine -d

http://localhost で起動します。

プラグインのスケルトン生成

docker-compose exec redmine bundle exec ruby bin/rails generate redmine_plugin redmine_plugin_of_yours

generate redmine_pluginについてはPlugin Tutorial - Redmineを見てください。

ログイン

ログイン — Redmine.JP

Redmineをインストールした直後であればユーザー名、パスワードともに"admin"でログインできます。

Redmineの管理者ユーザはadmin:adminです。

Wikiの保存時にInternal errorが出る場合

dockerでRedmineを起動する - Qiita

プロジェクトを作成しようとした所、以下のようなエラー画面が表示された。
修正箇所:dbの所にcommandを追加。

command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
を追加します。

Redmine終了

docker-compose kill

この先

あとは公式のプラグイン開発チュートリアルを読んでバリバリ開発してください。

参考情報

5
8
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8