Azure ACR Integration (azure/acr)
Atmos logs Docker clients into Azure Container Registry via the azure/acr integration and the
atmos azure acr login command.
Command
atmos azure acr login supports three modes:
# Named integration from auth.integrationsatmos azure acr login dev/acr# All azure/acr integrations linked to an identityatmos azure acr login --identity azure-dev# Explicit registry login server using ambient Azure credentialsatmos azure acr login --registry myregistry.azurecr.io
Named-integration and identity modes use Atmos Auth. Explicit --registry mode uses ambient Azure
credentials (the Azure SDK default credential chain: environment variables, managed identity,
workload identity, Azure CLI).
Configuration
Configure ACR integrations under auth.integrations with kind: azure/acr. Providers and
identities are the standard Azure Auth building blocks (see the main skill and
providers-and-identities.md):
auth:providers:azure-device-code:kind: azure/device-codespec:tenant_id: 00000000-0000-0000-0000-000000000000identities:azure-dev:kind: azure/subscriptionvia:provider: azure-device-codeprincipal:subscription_id: 11111111-1111-1111-1111-111111111111integrations:dev/acr:kind: azure/acrvia:identity: azure-devspec:auto_provision: trueregistry:name: myregistry
spec.registry is the same struct used by aws/ecr integrations (account_id, region for AWS;
name, tenant_id for Azure) — only the fields relevant to the integration's kind matter.
Login server = {name}.azurecr.io.
Guidance
- Prefer named integrations for stable registries; they make the registry name and identity
explicit in
atmos.yaml. - Use
--identitywhen the intent is "log in to every ACR registry attached to this identity." - Use
--registryfor one-off registry login servers, or when a script intentionally uses ambient Azure credentials instead of Atmos Auth. - ACR credentials are written to Docker's config location, respecting
DOCKER_CONFIGwhen set. SetDOCKER_CONFIGfirst when the workflow needs isolated credentials. spec.auto_provision: truetriggers ACR login duringatmos auth login; set it tofalsefor registries that should only be logged in explicitly.atmos azure acr loginhas no--publicmode (no ECR-Public equivalent) — it always authenticates. ACR registries are private by default; grant the principal the built-inAcrPull/AcrPushroles, or the repository-scoped roles when ABAC repository permissions are enabled (those supersede the built-inAcr*roles). Standard/Premium registries can separately enable anonymous pull, which needs no login.- Installing Docker or related tools for a CI job is out of scope here — route tool installation to
the
atmos-toolchainskill.