Add --userns flag to support Docker daemon that enables user namespace (#533)

I got an error like this after hitting `act` command.

> Error: Error response from daemon: cannot share the host's network namespace when user namespaces are enabled

According to the document, when user namespaces are enabled on the Docker daemon,
neither host network mode and --privileged work without --userns=host. Since `act`
uses host network mode to match GitHub Actions runners, it cannot run jobs when
user namespaces are enabled. So I added the flag.

https://docs.docker.com/engine/security/userns-remap/#user-namespace-known-limitations

Co-authored-by: Casey Lee <cplee@nektos.com>
This commit is contained in:
Hibariya
2021-02-28 01:31:25 +09:00
committed by GitHub
parent 6c118fe9ad
commit 8de7b956b7
7 changed files with 9 additions and 0 deletions

View File

@@ -44,6 +44,7 @@ type NewContainerInput struct {
Stderr io.Writer
NetworkMode string
Privileged bool
UsernsMode string
}
// FileEntry is a file to copy to a container
@@ -271,6 +272,7 @@ func (cr *containerReference) create() common.Executor {
Mounts: mounts,
NetworkMode: container.NetworkMode(input.NetworkMode),
Privileged: input.Privileged,
UsernsMode: container.UsernsMode(input.UsernsMode),
}, nil, input.Name)
if err != nil {
return errors.WithStack(err)