Kubernetes に於いて debug する爲に cluster 内に突如 container を立てたく成ったならば kubectl run 〜 --restart=Never で立てられる。既に在る container 内に入りたければ kubectl exec 〜 でよく、Pod 内に container を立てたければ、今は ephemeral container と云ふ仕組みが有って kubectl alpha debug 〜 で出來る。
ところで手元の開發環境は相變はらず docker-compose である。既に立ってゐる container に入りたければ docker-compose exec 〜 でよい。docker-compose では cluster と Pod は同じものである。cluster 或いは Pod 内に conatiner を立てる操作は docker-compose run --rm 〜 であるが、その container の定義は docker-compose.yml に書かねばならず、面倒だ。docker-compose の作る network 内に container を立てられればよいのであるから、docker の --network option で出來るのである。
docker-compose の作る network の名は、普通は ${DIRECTORY}_default である。docker network ls で調べてもよい。example/docker-compose.yml を起動してゐたとすると example_default だ。これを指定して、
docker run -it --network example_default --rm my_debug_image bash
これで何でも出來る。ん? 今何でも(