🐳

コンテナ内で特定のグループに所属したいときは公式オプションを使え

に公開

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に必ず所属させる必要がある。

ネットで調べると、多くの人がDockerfilebuild-argでホストのGIDを渡して、こねこねしているが、同じグループIDを持つグループが存在した場合とかにも正確に対応するのは面倒だし、グループ情報が読み込まれず、毎セッション開始時にnewgrpしないといけないのは面倒くさい。

docker run --group-addcompose.yamlgroup_addはこれを完全に解決できるので、最高。

Discussion