{
  "slug": "azd-deploy-supports-container-app-jobs-via-host-containerapp-e0c4934bde37",
  "title": "azd deploy supports Container App Jobs via host: containerapp",
  "tools": [
    "azd"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-03-07T01:49:19.000Z",
  "announced_at": "2026-03-07T01:49:19.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When deploying a Bicep-defined Container App Job, set the service’s `host` to `containerapp` and define a `Microsoft.App/jobs` resource. Tag that resource with `azd-service-name` matching the service name, then run `azd deploy`.",
    "examples": [
      "services:\n  <service>:\n    host: containerapp\n    language: docker\n    project: <project-path>\n    docker:\n      path: <Dockerfile-path>\n      context: <build-context>",
      "resource job 'Microsoft.App/jobs@2025-02-02-preview' = {\n  name: '<job-name>'\n  location: location\n  tags: {\n    'azd-env-name': environmentName\n    'azd-service-name': '<service>'\n  }\n  properties: {\n    environmentId: containerAppsEnvironment.id\n    configuration: {\n      replicaTimeout: 300\n      replicaRetryLimit: 1\n      triggerType: 'Manual'\n      registries: [\n        {\n          server: containerRegistry.properties.loginServer\n          identity: identityId\n        }\n      ]\n    }\n    template: {\n      containers: [\n        {\n          image: imageName\n          name: 'main'\n          resources: {\n            cpu: json('0.5')\n            memory: '1.0Gi'\n          }\n        }\n      ]\n    }\n  }\n  identity: {\n    type: 'UserAssigned'\n    userAssignedIdentities: {\n      '${identityId}': {}\n    }\n  }\n}",
      "azd deploy"
    ],
    "gotchas": [
      "Version: 1.23.8",
      "host (required): Set to `containerapp`; this host supports Container App Jobs.",
      "language: The documented job example sets this to `docker`.",
      "project: Path to the job service project; the documented example uses `./src/job`.",
      "docker.path: Path to the Dockerfile; the documented example uses `./Dockerfile`.",
      "docker.context: Docker build context; the documented example uses `.`.",
      "Microsoft.App/jobs resource tag `azd-service-name` (required): Must match the service name in azure.yaml so azd can associate the provisioned job with the service.",
      "Prerequisite: Define the `azure.yaml` job service and provision a `Microsoft.App/jobs` Bicep resource tagged with a matching `azd-service-name`."
    ]
  },
  "why_it_matters": "Deploy a Bicep-defined Container App Job using azd.",
  "before": "Before this feature, `azd deploy` rejected a `Microsoft.App/jobs` target because it expected resource type `Microsoft.App/containerApps`.",
  "sources": [
    "https://github.com/Azure/azure-dev/releases/tag/azure-dev-cli_1.23.8",
    "https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/container-apps-workflows",
    "https://github.com/Azure/azure-dev/issues/2743"
  ],
  "rank": 0.9802,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave2a-20261017",
    "verdict_id": "wave2a-20261017:wave2a-20261017-8c393f295490b67d-0:gate",
    "evidence_hash": "a220db45b347b17df8e90b3512ec080cfe61db0957d0968a37d5659b4f83e17e"
  },
  "review": {
    "draft_hash": "23643521639bf4ac499cd2b00315eacf114f94af06db2d6ad85b4b84bfe5e98e",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave2a-20261017:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.98 >= 0.9; 2 needed) and Jev gave 0.70 (>= 0.6 needed)."
  }
}
