Setting up continuous integration with Azure Container Registry for a Docker Swarm application RRS feed

  • Question

  • Hi everybody, we currently have a build pipeline set up to build various Docker swarm Windows containers and upload them to the Azure Container Registry. I am trying to figure out how to set up a release pipeline so that we can deploy our app to a public site for testing and getting versions out in front of QA testers quickly and often.

    I have been doing some reading on Azure Container Instances and I'm not sure if that will help us with docker swarm. We have YAML files orchestrating the build process of our containers but it is the path from built containers to deployed software that I am hazy on. Any help would be greatly appreciated.

    Update: Since we are running Windows containers, I have discovered that it is only possible to do CI on a single container instance. Now, say I have 10 containers. Do I spin up an instance of each container, each with its own CI pipeline? How do I get the networking set up so that they can talk to each other?

    • Edited by rare07 Wednesday, May 15, 2019 6:36 PM
    Wednesday, May 15, 2019 2:54 PM

All replies

  • Hi,

    ACI provides a quick and easy way deploy and run standalone containers.

    You can have multiple containers in a container group for linux container. But for windows containers we can run only one container per container group.

    If you have multiple windows containers and want to deploy on ACI, They have to communicate via the DNS label or public ip only.  You can also consider deploying the ACI in a VNET to make them communicate over the private ip address.  

    But ACI wont provider service discovery link kubernetes or Docker swarm.  As per ACI, All containers are standalone and we can create a relation between them.

    So if you need service discovery, Then its better to choose Docker swarm over ACI. Of course kubernetes will be the better option if you are willing to migrate. AKS provides support for windows containers using ACI.

    For the release pipeline, You can consider using Azure devops.

    This link describes about setting up a CI CD for docker swarm.  Deploying Docker swarm as a managed service in Azure is deprecated. But the doc holds good for setting up CI CD for docker swarm with Azure devops.

    Try this out and let me know if you have more questions.

    Thursday, May 16, 2019 6:44 AM
  • Thanks for your reply. What about using Azure App Services - Web App for Containers? I suppose we can go without docker swarm. The main thing that we want is continuous deployment/integration with multi-container web application with Windows containers. 
    Thursday, May 16, 2019 2:17 PM
  • Hi,

    App services for windows containers will help. 

    Checkout this link to get started.  This link will help you to setup the CI and CD for containers using Azure devops.

    You can also post the question related to App services  in Azure App services forum

    Tuesday, May 21, 2019 12:20 PM
  • HI,

    Is there any update

    Friday, May 24, 2019 12:15 PM
  • Any update on this thread?

    If a answer was useful, please remember to upvote and "Mark as answer" so others in the community can easily find it. 

    Friday, May 31, 2019 6:54 PM