【縛りプレイ中】Eclipse CheをDockerで使えるかどうか検証してみて挫折した
縛りプレイの一環です。
Eclipse Cheとは?
Eclipseが作っているクラウドIDEとワークスペース管理を統合した環境です。コードエディターはOrionを使っている模様。
CodenvyがEclipse Cheを利用するサービスを提供しています。
Dockerイメージが公開されている
DockerHubを見るとイメージが公開されているんですね。
https://hub.docker.com/r/codenvy/che/
早速イメージを引っ張ってみます。
docker pull codenvy/che
abeshinsukenoMacBook-Pro:~ mao$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE codenvy/che latest 9a261cf4b6b3 8 weeks ago 22.14 MB
いや、イメージ小さすぎないですかね?
使い方
docker for macは設定が必要らしいです。ハイパーバイザーでホストを立ち上げているので、そのIPアドレスを取得しておく必要がある模様。ちなみに、一回作っておくとIPアドレスは再起動しても変わりませんでした。推奨は .bash_profile
に入れておけ、なんですが、ターミナル立ち上げるたびにパスワード訊かれるようになります。ちょっと行けてないです。
ランチャーCLI
公式に書かれているCLI使ったインストール方法はちょっと問題がありました。シェルに書かれているいくつかのイメージのタグ指定がnightlyになってて、そもそもユーザ周りがおかしくて動かないです。環境変数を指定すれば問題ないですが。。。
とりあえずは立ち上がる
docker run
を使って起動しました。
適当にmavenのワークスペースとプロジェクトを作ってみましたが、おそらくプロジェクトごとの開発・実行環境をdockerで内部に作っているような動きをしています。作成ご、ワークスペースがdockerで立ち上がってるのが確認できます(ホスト管理下のコンテナとして立ち上がるのは筋が悪い気がする)。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d5b1013c3a17 eclipse-che/workspacefkvue7fyxxjv8ubi_machine6xhzk3ramv4gz0oa_che_default "/bin/sh -c 'sudo /us" 33 minutes ago Up 33 minutes 0.0.0.0:32774->22/tcp, 0.0.0.0:32773->4401/tcp, 0.0.0.0:32772->4403/tcp, 0.0.0.0:32771->4411/tcp, 0.0.0.0:32770->8000/tcp, 0.0.0.0:32769->8080/tcp, 0.0.0.0:32768->9876/tcp workspacefkvue7fyxxjv8ubi_machine6xhzk3ramv4gz0oa_che_default c3f1967a84b6 codenvy/che-server:latest "/home/user/che/bin/c" 37 minutes ago Up 37 minutes 8000/tcp, 0.0.0.0:8080->8080/tcp che-server
ちなみに、デフォルトではgradleのワークスペースがありません。しかし、代替案はあるようです。ドキュメント自体はありました。
ちなみに、コードエディターのインテリセンスはctrl + fn + space。これがわからなくてちょっと焦った。。。
イメージを再起動すると。。。
ワークスペース消える。。。まあ、ボリュームをマウントしてなかったので、そうかもなあ、とは思ったんですが、ホストにも残っていないようです。
それ以前に、マシン再起動したりログオフしたりするとマウントエラーが出ます。 まずなんで最初に立ち上がったんだよ、というレベル。。。
これは、lib-copyとstorageが指定されていないからみたいなのですが、docker run時に-v指定してもマウントできませんでした。とりあえずKitematicで、とも思ったんですが、これをするとsockが使えなくて、ワークスペースが作れないという悪循環。
まとめ
というわけで、いざという時にローカルで立ち上げるようにしておいて、素直にCodenvy使います。今のご時世で、ネットに繋がらない状態でコードを書くというのが考えづらいのと、Codenvyから試して最終的にAWSとかに持っていった方がいいのでは?と思ったので。