とにかく素早くRedmineの開発環境を作りたい


ブログ担当は石川です。最近ぷよぷよやテトリスといった落ち物パズルゲームにはまっていて、やっとぷよぷよの先折りGTRが組めるようになってきました。12月発売のぷよぷよテトリス2が楽しみです。

今回は、OSなどの環境によってインストールが失敗して困ること無く、とにかく素早くRedmineの開発環境を作る方法について紹介します。素早く開発環境を作る上で障害になるのは、やはり「○○のインストールがうまくいかなかったのでRedmineを動かすところまでたどり着けませんでした...」といったOSの違いなどによるインストールの失敗です。

そういったことがことが起きないよう、VSCodeとDocker / AWS Cloud9 のどちらかを使って、どんな環境でもだいたい同じ手順で開発をはじめる方法を紹介します。

「VSCodeとDocker」「AWS Cloud9」どちらがおすすめ?

VSCodeとDocker / AWS Cloud9 はどちらも遠隔ペアプロ・モブプロが可能です。

こんな方には 「1. VSCode Remote Containerを使ってDockerコンテナ上で開発する」 がオススメ

こんな方には「2. AWS Cloud9を使ってブラウザ上で開発する」 がオススメ

1. VSCode Remote Containerを使ってDockerコンテナ上で開発する

私はVSCodeのRemote Container という拡張機能を利用してRedmineの開発を行っています(Redmine以外でも使ってる)。VSCodeのRemote Containerを使うと、Dockerコンテナ上でRedmineを動かし、コンテナ内のコードをVSCodeから変更できるようになります。

良い点

Dockerコンテナ上で開発することで

さらにVSCode Remote Containerを使うことで

という良い点があります。

手順

GitHubに私が使っているDockerfileや設定ファイルを置いているので、まずはこれを使ってRedmineを起動してみてください。利用手順はGitHubをご覧ください。
https://github.com/ishikawa999/redmine_development_docker

Redmineを開発しやすくなるように必要そうなものが最初から入っているようにしています。

あくまでも自分用に作ったものなので、環境の汎用性はあまりありません。自分でカスタマイズしたくなったらDockerfileや設定ファイルを書き換えていくと良いと思います。

ぜひ使ってみてください。フィードバックも大歓迎です。

2. AWS Cloud9を使ってブラウザ上で開発する

Cloud9を紹介したブログ: クラウドベースの統合開発環境「AWS Cloud9」超便利ッス。

前提:

手順

(1) AWSコンソールからCloud9 environmentを作ります

(2) 作成したCloud9 environmentのTerminal部分でこれ以降のコマンドを入力していく

(3) リポジトリを取得。https://github.com/redmine/redmineをフォークした自分のリポジトリで開発したい場合はURLを自分のリポジトリに変える

$ git clone https://github.com/redmine/redmine
$ cd redmine

(4) データベースのアダプターをSQLiteにする(PostgreSQLなどより環境作りが楽なので)

redmine/config/database.ymlファイルを作成し、以下の内容にする
(上メニューのFile > New Fileを選択し、下の内容を入力。⌘+Sで保存し、保存先のFolderを/redmine/config、Filenameをdatabase.ymlにする)

development:
  adapter: sqlite3
  database: db/redmine-development.sqlite3

test:
  adapter: sqlite3
  database: db/redmine-test.sqlite3

production:
  adapter: sqlite3
  database: db/redmine-production.sqlite3

(5) Gemインストール

$ bundle install

(6) DBセットアップ

$ rake db:create
$ rake db:migrate

(7) アプリケーションを起動

Cloud9では、利用できるポートが決まっているため rails s -p 8080で8080ポートでRedmineにアクセス出来るようにする。

$ rails s -p 8080

(8) 起動したアプリケーションにアクセス

上メニューのPreviewをクリック > Preview Running Application > 開いたウィンドウの右上のアイコンをクリック => 開いたタブでRedmineが動いているはず。 ログインID: admin, パスワード: adminでログインできます。

これで、redmineディレクトリのファイルを書き換えたり、プラグインを作ったりするたびにRedmineで動作を確認することが出来るようになりました。

(9) テストを実行

$ RAILS_ENV=test rake test

プラグインの開発をする場合

1, 2の手順で動くようにしたRedmineの、pluginsディレクトリ以下にプラグインを配置します。

$ rake redmine:plugins:migrate

を実行します。

通常通り rails s でアプリケーションを起動し直すと、プラグインが入ったRedmineを起動できます。

(おまけ)Redmineの開発をするときのTips

rake db:fixtures:load

開発を行うとき、ダミーデータを作るのは結構大変です。まずトラッカーやカテゴリを作って、プロジェクトを作って、チケットを作って...。

rake db:fixtures:loadを実行してからRedmineを起動すると、英語のダミーデータが入った状態になっていて、動作確認が行いやすいです。

Gemfile.local

デバッグ用のGemをインストールしたいときは、Gemfileを書き換えるよりもGemfile.localを作ってそこに書くのがオススメです。

例)

gem 'pry-rails'
gem 'pry-byebug'
gem 'binding_of_caller'
gem 'better_errors'
gem 'view_source_map'
gem 'parallel_tests'
gem 'benchmark-ips'
gem 'timecop'

Gemfileを書き換えていると、自分用のgemを追加する変更を間違えてコミットしてしまいがちですが、Gemfile.localに書いていればそういったこともありません。Gemfile.localに書かれたgemは、Gemfileに書いたものと同じようにbundle installによってインストールできます。


My Redmine

こちらの記事もオススメです!
クラウドベースの統合開発環境「AWS Cloud9」超便利ッス。
AWS Cloud9は、いつでもどこでも同じ環境が使えて、共同開発にも向いています。
コロナ禍の防災訓練
手に入り易いモノや身近なモノを災害時に活用する方法を紹介します。感染症対策にも役立つ備災グッズとその使い方も。
MacBook Air 開発環境のセットアップ方法を紹介
MacBook Air 2020を購入。Ansibleを利用して開発環境を簡単セットアップする手順です。
夏休みの宿題に、Redmine(こどもれっどまいん)で楽しく取り組む試み
テーマ「こどもれっどまいん」や「チケットパネル」を使って子どもの夏休みの宿題の進み具合を一緒に確認しました。
ファーエンドテクノロジーはRedmineにどう関係しているのか
ファーエンドテクノロジーとRedmineの関係が気になる人が多そうなので紹介します。
ファーエンドテクノロジーからのお知らせ(2020/10/16更新)
My Redmineで二要素認証(ワンタイムパスワード)が使えるようになります
二要素認証が、My Redmineにおいて利用できるようになります。対応予定時期は2020年12月以降です。
RubyWorld Conference 2020 (12/17 オンライン開催) にGoldスポンサーとして協賛
12月17日(木)にオンラインで開催される「RubyWorld Conference 2020」にGoldスポンサーとして協賛しています。
働き方改革の取り組みに伴う営業時間変更のお知らせ
2020年10月1日より営業時間を8時30分〜17時00分に変更いたします。
webサポート窓口の対応時間変更のお知らせ(10月1日から)
2020年10月1日から「webサポート窓口」の対応時間を8時30分~17時00分に変更します。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け