6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

herokuにruby2.0、redmine2.5.3環境を構築するお話

Last updated at Posted at 2014-12-14

初投稿です。はじめまして。

とりあえず、今月初めにHerokuにruby2.0のredmine環境を構築したお話を書いてみようと思います。

背景

redmineのプラグイン、redmine_backlogsを気に入っており、
職場のイントラ内で使用している。ただし、あまりスクラム的な開発はできていない。
そこで、自宅からアクセスでき、色々と試せるredmne環境をつくろうと思い立った。

前置き

  • rubyのインストール、devkitのインストール、
    bundler Gemのインストールは省略します
  • Herokuのアカウント作成は省略します
  • Heroku Toolbeltをインストールしています
  • コンソールはGit Bashを使用しました
  • gitについてはまだよく理解できていません。もしかしたら非推奨な手順入っているかもしれないです
  • 後々推敲と称して修正します(多分)

手順

heroku上に新規アプリを作成

heroku create app_name

ローカルにredmineを構築

gitからclone

git clone https://github.com/redmine/redmine.git -b 2.5-stable

Gemfileの 末尾ruby '2.0.0' を追記

redmineルートディレクトリで以下のコマンドを実行

bundle install --without development test rmagick

herokuへ上げるための前準備

.gitignoreから以下の行をコメントアウト

/config/configuration.yml
/config/email.yml
/config/initializers/session_store.rb
/config/initializers/secret_token.rb
/public/plugin_assets
/Gemfile.lock
/Gemfile.local

作成したredmineルートディレクトリから、.gitを削除

※多分もっとスマートな方法がある

redmineルートディレクトリで git init を実行

redmineの設定ファイルを幾つか編集

/config/environment.rbを編集
exit 1 と記述のある行をコメントアウト

Gemfile内の以下をコメントアウト

database_file = File.join(File.dirname(__FILE__), "config/database.yml")
if File.exist?(database_file)
  database_config = YAML::load(ERB.new(IO.read(database_file)).result)
  adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
  if adapters.any?
    adapters.each do |adapter|
      case adapter
      when 'mysql2'
        gem "mysql2", "~> 0.3.11", :platforms => [:mri, :mingw, :x64_mingw]
        gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
      when 'mysql'
        gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
      when /postgresql/
        gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw, :x64_mingw]
        gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
      when /sqlite3/
        gem "sqlite3", :platforms => [:mri, :mingw, :x64_mingw]
        gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
      when /sqlserver/
        gem "tiny_tds", "~> 0.6.2", :platforms => [:mri, :mingw, :x64_mingw]
        gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
      else
        warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
      end
    end
  else
    warn("No adapter found in config/database.yml, please configure it first")
  end
else
  warn("Please configure your config/database.yml first")
end

続いて以下の行を追加

group :production do
  gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw, :x64_mingw]
  gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
end

セッションストアの初期化を実施

セッションストアの初期化はheroku上ではできないのでローカルで実行します。
※コメントにて何故できないかをご説明頂きました。感謝。

rake generate_secret_token

続いて以下のコマンドを実行

git remote add heroku 先ほど作成したアプリのgitURL
git add .
git commit -m "first commit"

※コメント内容は適したものに変更してください

herokuへのアップロード

以下のコマンドを実行

git push heroku master

※pushでソースのアップロードが完了するとにheroku上でbundle installなどが走る

heroku上のredmineのdb:migrateを実施

heroku run rake db:migrate RAILS_ENV=production

デフォルトデータの登録

heroku run rake redmine:load_default_data RAILS_ENV=production

heroku上のredmineを再起動

heroku restart

heroku上のredmineアプリのURLにアクセス確認

正常に起動していた場合、adminのパスワード変更(重要)

完了

参考にさせて頂いた記事の一覧

http://www.workabroad.jp/posts/1164
http://redmine.jp/guide/RedmineInstall/
http://qiita.com/takudo/items/71f52668060cc2a49c7e
http://blog.digital-squad.net/article/405317288.html
http://qiita.com/ogomr/items/53549e845ccf7a210663
http://rubyinstaller.org/
http://halucolor.blogspot.jp/2013/02/githerokuherokupush.html

6
5
2

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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?