Agent Diagnostic
- Skills loaded: create-github-issue, openshell-cli, debug-openshell-cluster
- OpenShell version tested: gateway 0.0.102-dev.4, supervisor latest
- Latest release checked: unable to verify
- Known fixes reviewed: unable to verify
- Possible duplicates reviewed: searched "docker auth credentials image pull", no results
- Findings: The Docker compute driver fails to pull images from authenticated registries even when valid credentials exist in Docker's
~/.docker/config.json. Manual docker pull with the same image reference succeeds using the stored credentials. The compute driver's pull path appears to bypass Docker's credential store.
- Remaining reason for filing: The compute driver should use Docker's native credential resolution.
Description
Actual behavior: sandbox create --from <authenticated-registry>/image:tag fails with:
ImagePullFailed: pull Docker image failed: Docker responded with status code 500:
failed to resolve reference "<registry>/image:tag": pull access denied,
repository does not exist or may require authorization: authorization failed:
no basic auth credentials
Meanwhile, running docker pull <registry>/image:tag directly on the same host succeeds because Docker reads credentials from ~/.docker/config.json.
Expected behavior: The Docker compute driver should use the Docker daemon's configured credential store when pulling images. If Docker is authenticated to a registry (via docker login or config.json), sandbox creation should inherit those credentials for image pulls.
Reproduction Steps
- Authenticate Docker to a private registry:
docker login <registry>
- Verify manual pull works:
docker pull <registry>/image:tag (succeeds)
- Create a sandbox with the same image:
openshell sandbox create --name test --from <registry>/image:tag --no-tty -- echo ready
- Observe ImagePullFailed with "no basic auth credentials"
This is not registry-specific. Observed with OpenShift's internal image registry, but the same behavior would occur with any authenticated registry (quay.io, ghcr.io, etc.) where credentials are stored in Docker's config but not passed through the compute driver's pull API call.
Environment
- OpenShell gateway: 0.0.102-dev.4
- Compute driver: Docker (CE)
- Docker version: standard Fedora 44 package
- Registry: OpenShift internal image registry (authenticated via token)
Agent Diagnostic
~/.docker/config.json. Manualdocker pullwith the same image reference succeeds using the stored credentials. The compute driver's pull path appears to bypass Docker's credential store.Description
Actual behavior:
sandbox create --from <authenticated-registry>/image:tagfails with:Meanwhile, running
docker pull <registry>/image:tagdirectly on the same host succeeds because Docker reads credentials from~/.docker/config.json.Expected behavior: The Docker compute driver should use the Docker daemon's configured credential store when pulling images. If Docker is authenticated to a registry (via
docker loginor config.json), sandbox creation should inherit those credentials for image pulls.Reproduction Steps
docker login <registry>docker pull <registry>/image:tag(succeeds)openshell sandbox create --name test --from <registry>/image:tag --no-tty -- echo readyThis is not registry-specific. Observed with OpenShift's internal image registry, but the same behavior would occur with any authenticated registry (quay.io, ghcr.io, etc.) where credentials are stored in Docker's config but not passed through the compute driver's pull API call.
Environment