From 8cc82ba98b7ce8bdf97ae14f92e4f89d3bf39e39 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Wed, 10 Feb 2016 15:47:37 -0800 Subject: [PATCH] Add some wrappers to support at least the default uid mapping The busybox adduser and addgroup commands are ignored by docker, as it avoids symlinks, but they are not compatible so this is kind of a good idea. See https://github.com/docker/docker/blob/master/pkg/idtools/usergroupadd_linux.go However, these do not yet deal with creating mapping ranges in /etc/subuid and /etc/subgid, so initially we provide a set that match the default docker name so at least docker daemon --userns-remap=default should work. Signed-off-by: Justin Cormack --- alpine/Dockerfile | 3 +++ alpine/packages/userns/etc/subgid | 1 + alpine/packages/userns/etc/subuid | 1 + alpine/packages/userns/groupadd | 3 +++ alpine/packages/userns/useradd | 13 +++++++++++++ 5 files changed, 21 insertions(+) create mode 100644 alpine/packages/userns/etc/subgid create mode 100644 alpine/packages/userns/etc/subuid create mode 100755 alpine/packages/userns/groupadd create mode 100755 alpine/packages/userns/useradd diff --git a/alpine/Dockerfile b/alpine/Dockerfile index d0981a8c2..285dc7ab8 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -48,6 +48,9 @@ COPY packages/hvtools/etc /etc/ COPY packages/hvtools/hv_get_dhcp_info /sbin/ COPY packages/hvtools/hv_get_dns_info /sbin/ COPY packages/hvtools/hv_set_ifconfig /sbin/ +COPY packages/userns/etc /etc/ +COPY packages/userns/groupadd /usr/sbin +COPY packages/userns/useradd /usr/sbin RUN \ rc-update add swap boot && \ diff --git a/alpine/packages/userns/etc/subgid b/alpine/packages/userns/etc/subgid new file mode 100644 index 000000000..b8b245e67 --- /dev/null +++ b/alpine/packages/userns/etc/subgid @@ -0,0 +1 @@ +dockremap:100000:65536 diff --git a/alpine/packages/userns/etc/subuid b/alpine/packages/userns/etc/subuid new file mode 100644 index 000000000..b8b245e67 --- /dev/null +++ b/alpine/packages/userns/etc/subuid @@ -0,0 +1 @@ +dockremap:100000:65536 diff --git a/alpine/packages/userns/groupadd b/alpine/packages/userns/groupadd new file mode 100755 index 000000000..3e12d0ef5 --- /dev/null +++ b/alpine/packages/userns/groupadd @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/sbin/addgroup $@ diff --git a/alpine/packages/userns/useradd b/alpine/packages/userns/useradd new file mode 100755 index 000000000..fff2a130c --- /dev/null +++ b/alpine/packages/userns/useradd @@ -0,0 +1,13 @@ +#!/bin/sh + +for a in $* +do + [ "$a" = "-N" ] && a="" + [ "$a" = "-M" ] && a="-H" + [ "$a" = "-g" ] && a="-G" + args="$args $a" +done + +echo $args + +exec /usr/sbin/adduser -D ${args}