Open6

eclipse che についての覚書

mtsmfmmtsmfm

https://github.com/eclipse/che

k8s 上で動く vscode remote container 拡張みたいなやつ。
特筆すべきはコンテナが複数、リポジトリも複数指定できる。
これができるものを他に知らないので試したい。が、全然手元で動かせない。

mtsmfmmtsmfm

docker for windows で動かせない。
なぜか che コンテナから che-theia コンテナへの通信が ingress を介す作りになっている。
windows から見ても docker から見ても同じホスト名で ingress に行けないといけないが、
ネットワークが違うので /etc/hosts 書いたりしなければ無理だと思われる。
ingress 通す必要がないと思うので internal 用 host 名 (che-host.che.svc みたいなやつ) で通信するように手直しがしたい。

mtsmfmmtsmfm

動かないのはおそらく docker for mac も同じだと思われる。

mtsmfmmtsmfm

che は chectl を使ってデプロイする。
デフォルトだと che-operator というやつが che 用のリソース群を管理している模様。

mtsmfmmtsmfm

che 自体は java、che-operator は go で書かれている。
向き先を一部は環境変数でいじれるっぽい。
ただし、configmap などを手でいじっても che-operator に戻されてしまう。
che-operator の簡単なデバッグ方法がわからないので、docker build して ghcr.io に push して、chectl server:deploy に --che-operator-image=ghcr.io/mtsmfm/che-operator:sha-75530c7cd883cf9a1692e531635f83d5ed2cfacc のように渡して使っている。

https://github.com/mtsmfm/che-operator/blob/75530c7cd883cf9a1692e531635f83d5ed2cfacc/.github/workflows/debug-build-push.yml

mtsmfmmtsmfm

che 自体も chectl に --cheimage=ghcr.io/mtsmfm/che:sha-51cc97d7592e1764d277a4577ebea7715ceec0e3 すれば任意の image を使える。

https://github.com/mtsmfm/che/blob/26e761afc1c43d0d96b020c2103461cb89adf9e0/.github/workflows/debug-build-push.yml

dockerfiles というディレクトリがあるが、docker build だけではなぜかだめっぽい。
mvn clean install したあとに build.sh を介す必要があるようだ。
ただし、この mvn clean installはちょくちょくコケる。
mvn のダウンロードに失敗したりするっぽい? よくわからない。