🐳
コンテナ内で特定のグループに所属したいときは公式オプションを使え
TL;DR
コンテナ内のユーザーを特定グループIDに絶対所属させるには公式オプションgroup_addを使え。
$ docker run --rm --group-add mail --group-add $HOST_DOCKER_GID busybox id
compose.yaml
services:
myservice:
image: alpine
group_add:
- mail
- $HOST_DOCKER_GID
背景
ホストの/dev/kvmをコンテナ内で使いたかったり、Docker outside of Dockerがしたくて/var/run/docker.sockをマウントしたりすると、コンテナ内ユーザーを特定のグループIDに必ず所属させる必要がある。
ネットで調べると、多くの人がDockerfileにbuild-argでホストのGIDを渡して、こねこねしているが、同じグループIDを持つグループが存在した場合とかにも正確に対応するのは面倒だし、グループ情報が読み込まれず、毎セッション開始時にnewgrpしないといけないのは面倒くさい。
docker run --group-addやcompose.yamlのgroup_addはこれを完全に解決できるので、最高。
Discussion