azuredockergitlabazure-container-service

How to deploy a Docker container to Azure App Service from GitLab container registry


I have an application hosted on GitLab and have set the GitLab CI to build my docker image and push it into GitLab Container registry. Now I want to deploy that container image into Azure App Service without using Azure Container Registry (I don't want to have another registry). Is this possible and how?

Thanks

EDIT:

I tried like this and it's not working. enter image description here

With this error:

2020-05-27T14:31:32.739Z INFO  - Pulling image: project1_administration:latest

2020-05-27T14:31:33.098Z ERROR - DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"Get https://registry-1.docker.io/v2/library/project1_administration/manifests/latest: unauthorized: incorrect username or password"}

2020-05-27T14:31:33.099Z ERROR - Pulling docker image project1_administration:latest failed:

2020-05-27T14:31:33.100Z INFO  - Pulling image from Docker hub: library/project1_administration:latest

2020-05-27T14:31:33.577Z ERROR - DockerApiException: Docker API responded with status code=NotFound, response={"message":"pull access denied for project1_administration, repository does not exist or may require 'docker login': denied: requested access to the resource is denied"}

2020-05-27T14:31:33.580Z ERROR - Image pull failed: Verify docker image configuration and credentials (if using private repository)

2020-05-27T14:31:33.586Z INFO  - Stopping site project1test because it failed during startup.

The username and password I used works when I connect to gitlab site. It seems it is trying to use Docker hub to pull the image not the GitLab.


Solution

  • Assuming that your image is already in the Container Registry in GitLab:

    1. To access your GitLab Registry Images from Azure, the first thing you need to do is create a Deploy Token (under Settings -> Repository). Copy the username and password (you won't be able to access the password again). Ensure the token has read_registry scope.
    2. In Azure, create a Web App for Containers. Under the Docker tab, choose Private Registry.
    3. Set the options as follows: