Skip to content

[Feature]: Support custom auth configs in container options #2759

Open
@SpencerC

Description

@SpencerC

Problem

In sandboxed/hermetic environments such as Bazel, $HOME is not available. This causes builds to fail following #2727. In our case, we're just using public registries so appearently being unable to load an auth config wasn't a problem before.

Solution

Add DockerConfig and DockerAuthConfig options to ContainerRequest or FromDockerfile.

Benefit

This would simplify the upgrade/management process for users running TestContainers in sandboxed environments. It also seems more consistent with the design of the rest of the package (e.g. configuration in code vs. environment variables).

Alternatives

Testers can always set DOCKER_CONFIG or DOCKER_AUTH_CONFIG in their bash profile, but then this needs to be done on every system running the tests.

Another approach is to map a sandbox path and set DOCKER_CONFIG at runtime:

dac, err := runfiles.Rlocation("_main/docker/.config")
if err != nil {
	log.Fatalf("could not get absolute path to docker auth config: %v", err)
}
if err := os.Setenv("DOCKER_CONFIG", dac); err != nil {
	log.Fatalf("could not set DOCKER_CONFIG: %v", err)
}

But this is a bit hacky.

Would you like to help contributing this feature?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew functionality or new behaviors on the existing one

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions