actions / actions/runner

Impossible to create docker network with --ipv6

Open
#3,599 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
6.3k
Forks
1.4k
Avg merge
1d 16h
Merged PRs (30d)
24

Description

hi,

try to run the self-hosted runner on IPv6 only system. Runner runs fine on the system and connected thanks to nat64 to github.
Docker config on the host:

{
"ipv6": true,
"ip6tables": true,
"experimental": true,
"fixed-cidr-v6": "fd00::/64",
"default-address-pools": [
    { "base": "172.17.0.0/16", "size": 16 },
    { "base": "172.18.0.0/16", "size": 16 },
    { "base": "172.19.0.0/16", "size": 16 },
    { "base": "172.20.0.0/14", "size": 16 },
    { "base": "172.24.0.0/14", "size": 16 },
    { "base": "172.28.0.0/14", "size": 16 },
    { "base": "192.168.0.0/16", "size": 20 },
    { "base": "fd01::/64", "size": 112 }
  ]
}

But all container networks created via action runner are always without IPv6. See your code:


      public async Task<int> DockerNetworkCreate(IExecutionContext context, string network)
        {
#if OS_WINDOWS
            return await ExecuteDockerCommandAsync(context, "network", $"create --label {DockerInstanceLabel} {network} --driver nat", context.CancellationToken);
#else
            return await ExecuteDockerCommandAsync(context, "network", $"create --label {DockerInstanceLabel} {network}", context.CancellationToken);
#endif

There is no possible way to inject --ipv6 to it.
Docker has no config flag to enable it by default

Solution add a config option to enable ipv6 on network create.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the DockerNetworkCreate method shown in the issue and trace how runner configuration options are defined and passed to Docker network creation. Add a configurable IPv6 setting whose enabled behavior results in network creation with IPv6 support, and verify the resulting command and configuration handling with the runner's existing tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, docker
Domain
devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.