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
これで何でも出來る。ん? 今何でも(