Continuous Integration for ASP.NET with Docker and Azure Devops

Video description

Docker with Kubernetes has already become a mainstream technology. However, running Windows containers with Docker is still a less explored path and lacks resources. This course was initially created as Docker mastery on Windows.

We will start with an introduction to CI with Azure DevOps and Docker for .NET, and we will explore Docker's story and what is Azure DevOps. We will learn about Docker architecture and ecosystem to understand Docker in a better way.

Moving forward, we will understand Docker registries and how to debug container applications with logs. We will learn to create an environment to build an ASP.NET Core app, a hands-on project wherein you will learn to write a Dockerfile for a .NET Core app to make your skills stronger.

By the end of the course, you will be able to run Windows containers and set up the CI pipeline with Azure DevOps.

What You Will Learn

  • Continuous integration and delivery workflow with Docker and Kubernetes
  • Set up Windows 10 Docker Host with Azure VM
  • Understand concepts related to Docker and running Windows containers
  • Deep dive into writing Dockerfiles, multi-stage Dockerfiles, and image building best practices
  • Create Azure container registry and publish Docker images to it
  • Learn how to run and operate Windows Containers


This course is mainly for DevOps engineers responsible for building CI/CD pipelines for ASP.NET applications. This course can be taken by developers and quality analysts who would like to package ASP.NET Core/Framework applications with Docker. This course is for anyone who wants to learn how to run Windows containers and anyone who would like to learn how to create continuous integration pipelines with Azure DevOps.

About The Author

Gourav Shah: Gourav comes with more than a decade of experience in building, managing, and automating systems at scale. He has helped organizations design and implements DevOps practices. He left his corporate job in 2012 to start Initcron, a niche DevOps consulting firm. He eventually got into delivering DevOps workshops for the corporates in India and then internationally. He has conducted more than 300 instructor-led training.

Publisher resources

Download Example Code

Table of contents

  1. Chapter 1 : Introduction to CI with Azure DevOps Ad Docker for .NET
    1. Why Container-Based Software Delivery
    2. What is Continuous Integration and Delivery?
    3. CI/CD Workflow with Docker and Kubernetes
    4. Running .NET Applications with Docker
    5. What is Azure DevOps?
    6. The Docker Story
    7. Containers Versus VMs
    8. Two Ways on Windows - Hyper-V and Windows Containers
    9. Technologies Under the Hood – Namespaces, CGroups, and Layers
    10. Docker Architecture and Ecosystem
  2. Chapter 2 : Environment Setup
    1. Setup Azure Account
    2. Launch Windows 10 VM on Azure
    3. Install and Configure Docker to Run Windows Containers
  3. Chapter 3 : Running and Operating
    1. Getting Started with Docker Client
    2. Understand Docker Registries
    3. Learn to Pull and Examine Images
    4. Launch Your First Ephemeral Container
    5. Working with an Interactive Container
    6. Running Containers in Detached Mode
    7. Debugging Container Applications with Logs
    8. Getting Inside the Container with Exec
    9. Exposing Application with Port Mapping
    10. Managing Container's Lifecycle
    11. Lab Time
  4. Chapter 4 : Dockerizing a ASP .NET Core App
    1. Create an Environment to Build ASP.NET Core App
    2. Build an ASP.NET Core App Within a Container
    3. Committing Container's Changes to an Image
    4. Why Do You Need a Dockerfile?
    5. Automated Build of an Image With a Dockerfile
    6. Publishing Docker Image to Docker Hub
    7. The Secret Behind Image Layers – Iterative Image Build
    8. Deep Dive into Dockerfile Instructions
    9. Analyzing a Dockerfile for ASP .NET App
    10. Write a Dockerfile for a .NET Core App
    11. Solution to Dockerfile for a .NET Core App
  5. Chapter 5 : Advanced Image Building Projects
    1. What is a Multi-Stage Dockerfile
    2. Nano Project – Refactor Dockerfile for ASP .NET app with Multi-Stage
    3. Solution
    4. Research Project
    5. Nano Project - Dockerize a Legacy ASP .NET Framework App
    6. Solution Part I - Build App with .NET Framework SDK Image
    7. Solution Part II - Test Run ASP .NET Framework App
    8. Solution Part III - Write a Multi-Stage Dockerfile to Automate Image Build
  6. Chapter 6 : Deploying Containers with Docker Compose
    1. AlbumViewer Application Stack Use Case
    2. Imperative Approach to Launch AlbumViewer Container Stack
    3. Introducing Docker Compose
    4. Building docker-compose.yaml with YAML
    5. Launching Two-Tier Application with Compose
    6. More Docker Compose Commands
    7. Service Discovery with Docker Compose
    8. Integration Dockerfile with Compose
    9. Idempotence and Immutable Deployments
  7. Chapter 7 : Building CI Pipelines with Azure DevOps
    1. Creating Azure DevOps Account
    2. Importing a GitHub Repository to Azure DevOps
    3. Creating a Simple ASP.NET Build Pipeline
    4. Modifying Pipeline and Triggering Manually
    5. Adding a Docker-Based Build Pipeline
    6. Set Up Azure Container Registry
    7. Retagging and Pushing Images to ACR
    8. Docker build and ACR Publish Pipeline
  8. Chapter 8 : Deploy to Dev with Compose and Azure DevOps
    1. Configuring Docker Host to Accept Remote Connections
    2. Debugging Issue with TLS Certs and Docker Image
    3. Adding Service Connection to a Docker Host
    4. Sync GitHub and Azure Repos with Git Remotes
    5. Adding Deploy to Dev Stage with Docker Compose
    6. Troubleshooting Connectivity Issues
    7. How to Detect and Fix Firewall Issues

Product information

  • Title: Continuous Integration for ASP.NET with Docker and Azure Devops
  • Author(s): Gourav Shah
  • Release date: May 2021
  • Publisher(s): Packt Publishing
  • ISBN: 9781801070546