Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Cloud9でRedmineを動かす

More than 5 years have passed since last update.

これしか話題が無くて申し訳ないのですが、『xxxでRedmineを動かそう』なシリーズ(?)です。

Cloud9は、ご縁のあった @mitsuruog さんから教えていただきました。
その名の通り、クラウド上の開発環境です。

通常、コードの修正自体は手元(ローカル)のマシンやMacで行い、稼働やテストの時だけクラウドのサービスを使っているのですが、ささっと新しいフレームワークを試したいなあ...という時に、1から環境を作るのは、なかなか骨が折れる作業です。(どれも試行錯誤したあげく、自分のマシンが汚れてきてしまいます)

空のプロジェクトで開始

GitHubのアカウントを利用してサインアップすると、ダッシュボードの左側に、自分のリポジトリ&お気に入りのリポジトリの一覧が出て来ます。

cloud9-dashboard.png

このリポジトリを利用して、ささっと開始...も可能なんですが、私はせいぜいプラグインのソースなので、それ自体での稼働はできないものばかり。

まずは空っぽのプロジェクトで、Redmineのソースを取得するところから始まります。ここは、クラウドのCIツールを使う時と同じ流れです。

RedmineのClone / bundle install

ログインした直後、rubyのバージョンを確認すると、2.1.1でした。
まずは、単純にbundle installしてみます。

  • DBはsqlite3
  • rmagickは無し

bundle install をすると、nokogiriのインストールでエラーで止まってしまいます。

$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]

$ git clone -b 2.5-stable https://github.com/redmine/redmine.git
$ cd redmine
$ bundle check || bundle install  --path vendor/bundle --without mysql postgreql rmagick

メッセージを見ると、libxsltを入れてという内容。
Cloud9では、シェルに加えてsudoも実行出来るということだったので、試しにapt-getすると、追加が可能でした。
おかげさまで、なんとか続行。

$ sudo apt-get  install libxslt-dev

起動します

bundle installが終わったので、起動の準備です。
まずはDBの設定を編集し、migrationをします。

# database.yml(SQLite利用)
$ cat << HERE >> config/database.yml
development:
  adapter: sqlite3
  database: db/development.sqlite3
HERE

bundle exec rake db:migrate
 $ bundle exec rake generate_secret_token

あとは、runコマンド(メニュー)があるので、何も考えずに実行。

cloud9-run.png

どうやら上がった模様です!

ブラウザからアクセスする

画面のメッセージには、

Your code is running at https://プロジェクト名-c9-ユーザ名.c9.io.

というURLで動いてますよ、というメッセージが出ています。
httpsも付けてくれるんですね!

異なるブラウザでチェック

手元のブラウザだけではなく、プロジェクトのIDEの画面を通して、Cloud9のデフォルトのブラウザで表示確認ができます。

さらに、加えてSauce Labsの機能を利用して、異なるブラウザでのチェックができます。

cloud9-redmine.png

cloud9-browser.png

クロスブラウザでのチェックは、Cloud9そのものの機能ではなく、Sauce Labsに連携しているため、うっかり上げっぱなしにしていると、Sauce Labsでの無料枠が埋まってしまい、下記のようなメッセージが出てしまうので、ご注意を^^;

Your Sauce Labs trial ended!
Please create an account at saucelabs.com,
and login with your account.

今回は、上げたままにしてしまっていて、Seleniumでのテストなどができませんでした...。

たぶんレアケースなトラブル

さて、ひとまず起動まではできました。
が、わたしの場合、アプリケーションのURLの問題で、エラーが出てしまいました。

それは、GitHubを使ってサインアップしたため、"_"(アンダースコア)を含むアカウント名でアプリケーションのURLが設定されたからでした。
下記のようなエラーメッセージが出て、うまくアプリケーションが参照できませんでした...。

URI::InvalidURIError

こちらは、下記の情報に従って、config/initializers/uri_underscore.rb で設定をして解決できています...。

できること / できないこと

まだテストは動かしていませんが、shellが使えるので、普通に自分のローカルな環境と同じようにテストは走らせることができると思います。
また、『おお!』と思ったのが、shellのhistoryだけじゃなくて、エディタ上での編集の履歴も保持しているというところ。

なお、Rubyに関しては、まだIDEを利用してのデバッグはできないようです。

今回は、ブラウザだけで閉じてしまいましたが、自分の端末からsshで操作、というのも試してみようと思います。

補足:Cloud9についてのメモ

『開発のための貴重な時間を、環境構築やメンテナンスのために費やす必要はありません。ほんの数秒で、開発のためのフレームワークをビルドしたり実行したり出来ます。メンテナンスは私たち(cloud9)が行い、コントロールするのは、あなたです』...とまあ、素敵なことが書いてあります。(意訳です)

  • ワークスペースはdockerのubuntuコンテナ上に展開されます。
  • sudoもできます。
  • ターミナルやランナーも提供されているので、gitにプッシュしたり、SASSをコンパイルしたり、サーバ上の成果物を確認したり、アプリケーションを実行したりできます。
  • ブラウザで操作するだけでなく、各自のマシンからsshでVMにアクセスできます。
  • コード編集の履歴を持っていて、過去の編集状況に戻ることができます(これ凄い!)
akiko-pusu
コツコツと学習しながらのメモを書いています。高度なものは少ないのですが、「なぜ?」「なにがきっかけで?」「この記事はなに?」といったことに留意して書き留めています。ご興味を持っていただけたら嬉しいです!
https://daily-postit.hatenablog.com
infra-workshop
インフラ技術を勉強したい人たちのためのオンライン勉強会です
https://wp.infra-workshop.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away