読者です 読者をやめる 読者になる 読者になる

冥冥乃志

ソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。

follow us in feedly

【縛りプレイ中】Eclipse CheをDockerで使えるかどうか検証してみて挫折した

Programming

縛りプレイの一環です。

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

いや、イメージ小さすぎないですかね?

使い方

eclipse-che.readme.io

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のワークスペースがありません。しかし、代替案はあるようです。ドキュメント自体はありました。

eclipse-che.readme.io

ちなみに、コードエディターのインテリセンスはctrl + fn + space。これがわからなくてちょっと焦った。。。

イメージを再起動すると。。。

ワークスペース消える。。。まあ、ボリュームをマウントしてなかったので、そうかもなあ、とは思ったんですが、ホストにも残っていないようです。

それ以前に、マシン再起動したりログオフしたりするとマウントエラーが出ます。 まずなんで最初に立ち上がったんだよ、というレベル。。。

これは、lib-copyとstorageが指定されていないからみたいなのですが、docker run時に-v指定してもマウントできませんでした。とりあえずKitematicで、とも思ったんですが、これをするとsockが使えなくて、ワークスペースが作れないという悪循環。

まとめ

というわけで、いざという時にローカルで立ち上げるようにしておいて、素直にCodenvy使います。今のご時世で、ネットに繋がらない状態でコードを書くというのが考えづらいのと、Codenvyから試して最終的にAWSとかに持っていった方がいいのでは?と思ったので。