🐳
コンテナ内で特定のグループに所属したいときは公式オプションを使え
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