Issue with image pulling version for Azure Web App

Sandy Liu Yang 20 Reputation points
2025-02-28T08:59:52.1166667+00:00

I have an Azure web app. I’m trying to deploy from GitHub action, but the pulling image fails as the error showing below:

1

I checked the original type is : application/vnd.oci.image.index.v1+json, I don’t know why the app treat it as application/vnd.docker.distribution.manifest.v1+json and shows the error.

2

 

Azure App Service
Azure App Service
Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
8,930 questions
{count} votes

Accepted answer
  1. Sirra Sneha 550 Reputation points Microsoft External Staff Moderator
    2025-03-06T10:42:56.2233333+00:00

    Hi @Sandy Liu Yang ,

    Glad to hear that adding provenance: false worked !

    The reason one app accepts vnd.oci.image.index.v1+json while another does not is likely due to differences in how Azure App Service handles container images based on:

    1. Container Runtime Differences – Some Azure App Service SKUs may have varying support for OCI and Docker v2 image formats.
    2. App Service Plan & OS Variations – Different regions, plans, or configurations might cause inconsistencies in image support.
    3. Registry Handling – GitHub Container Registry (GHCR) defaults to pushing OCI images, but Azure App Service often expects Docker v2 schema images.

    How to Resolve the Issue

    If you want to ensure compatibility across all your Azure Web Apps, try the following:

    1. Force Docker v2 Schema Format in GitHub Actions

    Modify your GitHub Actions workflow to explicitly use Docker v2 format by adding provenance: false and setting output=type=docker:

    - name: Build and push container image to registry
      uses: docker/build-push-action@v6
      with:
        push: true
        tags: ghcr.io/${{ env.REPO }}:${{ github.sha }}
        file: ./Dockerfile
        provenance: false 
        outputs: type=docker
    
    
    1. Verify the Image Manifest Type in GHCR
      After pushing the image, check its manifest type using:
    skopeo inspect --raw docker://ghcr.io/<your-repo>:<tag>
    
    
    

    Look for "mediaType": "application/vnd.docker.distribution.manifest.v2+json".

    • Check if "WEBSITES_ENABLE_APP_SERVICE_STORAGE" is set to true (this can affect how Azure pulls images).

    Hope this helps.

    If the answer is helpful, please click Accept Answer and kindly upvote it. If you have any further questions about this answer, please click Comment

    1 person found this answer helpful.
    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.