Skip to content
Latchkey

Compose "pull access denied ... repository does not exist or may require docker login" in CI

Compose pulled the image referenced by a service and the registry refused anonymous access. Either the repository is private and no login was configured, or the image name is wrong so it appears not to exist.

What this error means

A docker compose up or pull fails with "pull access denied for <image>, repository does not exist or may require 'docker login': denied: requested access to the resource is denied".

compose
Error response from daemon: pull access denied for acme/private-api,
repository does not exist or may require 'docker login':
denied: requested access to the resource is denied

Common causes

No login for a private image

The service image is in a private repository and the runner never authenticated, so the registry returns access denied.

A misspelled or unqualified image name

A typo or a missing registry prefix makes the daemon look for a repository that does not exist.

How to fix it

Log in before pulling

  1. Authenticate to the registry the image lives in.
  2. Confirm the image reference is correct and fully qualified.
  3. Re-run docker compose pull.
.github/workflows/ci.yml
- uses: docker/login-action@v3
  with:
    registry: ghcr.io
    username: ${{ github.actor }}
    password: ${{ secrets.GITHUB_TOKEN }}

Fix the image reference in the compose file

Use the full registry/owner/image:tag so the daemon resolves the right repository.

docker-compose.yml
services:
  api:
    image: ghcr.io/acme/private-api:1.4.0

How to prevent it

  • Authenticate to private registries before compose pulls.
  • Use fully qualified image references in compose files.
  • Grant the CI token pull access to the repository.

Frequently asked questions

What causes ""pull access denied for ... may require 'docker login'""?
The service image is in a private repository and the runner never authenticated, so the registry returns access denied.
How do I fix "pull access denied for ... may require 'docker login'"?
Log in before pulling

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card