クラウド IDE Eclipse Che を使ってみる

Eclipse Che

クラウドIDEである Codenvy、Eclipse Che が Docker で利用可能になった旨アナウンスがされたので、利用してみました。

はじめに

先日 Codenvy のブログ にて Eclipse Che and Codenvy on Docker という記事を発見しました。

Eclipse Che は Eclipse のクラウド版といえるIDEです。

日本語の情報はあまりないようですが、以下が参考になるかと思います。

Codenvy は元々 SaaS として提供されているようですが、上記ブログによると、Docker を利用してオンプレミスでの実行も可能という話。

試しに使ってみました。

※写真 : 足成

環境

環境は以下

CentOS上にDockerの利用環境を作る で構築した環境です。

OS CentOS 6.7
docker docker-io-1.6.2-3.el6.x86_64

Eclipse Che の実行

実行手順を以下に記します。

Eclipse Che に書いてある方法 に従えばOKです。

Eclipse Che に書いてある手順

  1. Docker ホストから以下実行します。
    # docker run -it -p 8080:8080 -p 49152-49162:49152-49162 codenvy/che
    

    上記では Eclipse Che 用のイメージを指定して実行しています。
    -p オプションでポートフォワード設定を行っているので、Docker ホストの 8080 ポートにアクセスすると、 起動されたコンテナの8080ポートにアクセスされます。49152 から 49162 番ポートも同様です。

  2. Eclipse Che を利用するにはWebブラウザから以下にアクセスします。
    http://<Dockerホストのアドレス>:8080/
    

オレオレ手順

弊社では Docker コンテナを実行する場合固定IPを割り振っています。
割り当て方法は Dockerコンテナをブリッジ接続で使う に示した手順に従っています。

以下はこの手順に従った場合の方法です。

  1. codenvy/che イメージを取得します。
    # docker pull codenvy/che
    
  2. 固定 IP 割り振りのために スクリプトを利用してコンテナ起動します。
    # ./run-docker.sh -a 192.168.1.77/24 codenvy/che che
    
  3. 起動したコンテナにアタッチします。
    # docker attach che
    
  4. user ユーザでログインするので、Eclipse Che を起動します。
    ( オレオレ手順で実行した場合 Eclipse Cheが自動起動しなかったので手動起動する )

    起動/停止のためのスクリプト ( che.sh ) があるので、これを利用します。

    user@che:~/che/bin$ ./che.sh start
    

    ※Eclipse Che は Tomcat上で動作する Webアプリケーションとなっています。
    /home/user/che が Tomcatのルートディレクトリになっています。Tomcatを利用した事があれば、設定を変更したり、log をチェックして動作状況を確認したりといった事も可能でしょう。

  5. オレオレ手順の場合、アクセス先URLは以下になります。
    http://<Dockerコンテナのアドレス>:8080/
    

    ※上記手順であれば 192.168.1.77 がコンテナのアドレスになる。

Eclipse Cheの利用

アプリケーションが起動したら利用してみましょう。
上記手順で示したアドレスにWebブラウザを利用してアクセスします。

Eclipse Che の利用

Webブラウザでアクセスします。
( 以下 Firefox を利用した場合のスクリーンショットになります。 )

Eclipse Che

プロジェクトの作成

起動しただけでは意味がないので、適当なプロジェクトを作成して利用してみましょう。

  1. メニューから [File] > [New] > [Project...] を実行します。
  2. [Create New Project] ウィンドウが開くのでプロジェクトを作成します。
    ここでは SAMPLES-HELLO WORLD の Struts プロジェクトを作る事にします。
    Eclipse Che

    ウィンドウ左部分で作成するプロジェクトタイプを選択し、Name 欄に適当なプロジェクト名を設定して [Create] ボタンをクリックします。

  3. サンプルプロジェクトが作成されます。
    プロジェクトが作成されると自動的に ( Maven ) ビルドが実行されます。
    Eclipse Che - Project Create

プロジェクトの実行

プロジェクトのビルドが成功したら実行してみましょう。
画面右上にある実行 ( Run application ) ボタン、あるいは、メニューの [Run] > [Run] から実行可能です。

アプリケーションの実行状態はウィンドウ下部の[Runners]を選択する事で確認できます。

Eclipse Che - Run

アプリケーションへアクセス可能になると、[Runners] タブの画面下部にURLが表示されます。

※但し、ホスト名は現状localhost固定のようで、実際のアドレスは変更する必要があるようです。( 設定ファイル等で変更可能かもしれませんが確認できていません )

表示されたポート番号を指定する事で実行したWebアプリケーションにアクセスする事が可能です。

Eclipse Che - Application

プロジェクトのデバッグ

デバッグも可能です。
デバッグを行う場合、画面右上のデバッグ ( Debug application : 虫のアイコン ) ボタン、あるいは、メニューの [Run] > [Debug] から実行可能です。

  • ブレークポイントの設定も可能 ( ソースの行番号をクリックする事で ON/OFF される)
  • デバッグを実行すると[Debug]タブが表示され、ここでブレークポイントや変数の値を確認する事が可能
  • リモートデバッグも可能
Eclipse Che - Debug

バージョン管理システムとの連携

この機能に関しては精査していませんが、github 上にある簡単なJavaのWebアプリケーションをインポートして動作する事は確認できました。

使用感

現状での Eclipse Che の使用感は、

  • 個人的には本格的な開発に利用する気にはならない
    安定性等の点で通常のEclipseを置き換えるまでのものにはなっていない。
  • 日本語での利用に難あり
    UIは英語のみ ( 設定で変更できる可能性はある )。
    プロジェクト名で日本語を利用しようとした際に、単語確定処理で [Create] ボタンが反応する等、操作面でも問題がある箇所があるかもしれない。
    ソースファイル中の日本語入力に関しては大きな問題はなかった。
    また、IDEからファイルのエンコーディングを指定する機能が存在しない ( と思われる ) ため、シフトJIS でファイルを管理しているといった場合にも問題が出る可能性がある。

といった感じであり、メインの開発環境をこれに移行というのは考えられないというのが正直なところです。

使い道

メインの開発環境は難しいかもしれませんが、使い道が無い訳ではありません。

  • メインの開発環境を汚したくない場合に
    Github 上にあるプロジェクト等を試しに実行してみたいが、メインの開発環境には入れたくないといった場合に、こういったプロジェクトのビルド、実行環境としては結構いいかもしれません。
    Eclipse Che 上で実行されたアプリケーションは、デフォルトでは 4 hour timeout でシャットダウンされるように設定されており、テンポラリ、テスト使用で動作させるためのプラットフォーム ( 時間制限付で利用して頂く等 ) としても使えそうな気がします。
  • ペアプログラミング環境として
    ペアプログラミングを行う場合に自分、または、相手のPCの前で行うのが普通かと思いますが、
    • 遠隔地の相手なため物理的に無理
    • そもそも近づきたくない :-p

    とかいった事もあるかもしれません。
    こういった場合でもブラウザ経由でワークスペースを共有できるため、問題を解決するための手段になるかもしれません。

  • 教育用
    昔、Java講師として20人程度にJavaのWebアプリケーション開発を教える仕事をしていた事があるのですが、こういった場合、人数分の統一された環境を構築、メンテナンス ( カリキュラムが終了したら次の受講者のためにクリーンアップ等もしなければならない ) するのは結構大変です。

    私が行っていた教室は1ヵ月サイクルだったのですが、1月毎にこの作業を行うのは結構大変でした。
    クラウドIDEを利用する事でこういった問題を解決できる可能性はあると思います。

    Javaの教育用でなくとも、アプリケーション ( Eclipse Che 上で動作可能な ) の教育環境としても利用可能だと思います。

まとめ

クラウドIDEというと、SaaS 形式で提供されているものが殆どであるという思い込みもあり、「アカウント作ってまで使う気しねー!」という印象だったのですが、

今回 Eclipse Che を利用してみたところ、「使えるかも」に印象が変わりました。
先にも書いているように、現状でメインの開発環境の移行先となる可能性は低いと思いますが、利用箇所次第では使えるツールとなる可能性は大きいと思われます。

Docker 環境が既にあるのであれば、ネタを仕入れる感覚でお試し利用してみるのもありかと思います。