Azure DevOps pipelines Windows VM Agents with Docker - azure

Do Azure DevOps Release Pipelines support Agent Pools using Windows OS based images, which do have Docker preinstalled?
Or is it possible to install Docker on Windows VM agents? According to official docs, installing Docker requires VM reboot, so I assume rebooting the VM would cause whole workflow to crash.

You can install the agent software on your own Windows OS machine and use that as an agent as opposed to the devops pool. It will have access to resources such as docker that are available on the host machine.

Related

Running Azure Devops Self-hosted agent on Linux VM

I had Installed ADO agent on SELinux enabled RHEL8 Azure VM.
Facing issues running the agent as Service but can Run in interactive mode.
Reached out to Microsoft support and they asked to disable SELinux which can't be done due to security issues.
Can someone please suggest the best secured configuration that can be used to run ADO agent on Linux VM

Azure windows self-hosted agent with docker installed

We are trying to develop Azure windows self-hosted to run Azure pipelines.
However, these agents are deployed on kubernetes. And we want these agents to be able to use docker for build/push operations. meaning we need docker inside docker.
Is it possible to install docker on these windows self-hosted agents ?
You need to set up a self-hosted agent in Azure Pipelines to run inside a Windows Server Core (for Windows hosts), or Ubuntu container (for Linux hosts) with Docker. Detailed steps you may refer to the following link:
https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/docker?view=azure-devops

Azure Service Fabric cluster to run windows containers on windows 7 single machine

I want to use Service Fabric to run windows containers on my windows 7 machine. Docker is not installed on my machine. It seems windows 7 cannot run docker as it does not have Hyper-V. We have created docker images separately and pushed it to a containers registry.
I created a new service fabric project on my machine using Visual Studio 2017 and selected Container as an option. Project template is giving me a warning :
The local machine cannot run guest containers because the operating system does not support 'Container' feature.
My question is even though I do not have Docker installed on my local machine, can I still run service fabric cluster which host containers? I have installed Service Fabric SDK on my machine.
Windows 7 is technically supported for developing Service Fabric
Service Fabric Supported Operating Systems
As you see, there is an extra step if you are using Windows 7 but it is still supported.
However, since you want to run Windows Containers in Service Fabric, this requires you to install Docker CE for Windows which is designed for Windows 10 and requires Hyper-V to be enabled.
So long answer short, you won't be able to do it while running Windows 7

Azure DevOps: What's the difference between the "Hosted Linux Preview" and "Hosted Ubuntu 1604" agent pools?

I have some build pipelines that build Linux based Docker images and run on the Hosted Linux Preview pool. Recently I noticed a pool called Hosted Ubuntu 1604. On this page, Hosted Linux Preview is not mentioned, and Ubuntu 1604 is recommended for Docker.
So is Hosted Linux Preview deprecated or are there still reasons to use it? Should I be migrating my pipelines to Hosted Ubuntu 1604?
The Microsoft-hosted agents page now has information on the deprecation of the Hosted Linux Preview pool and how to migrate over to the Hosted Ubuntu 1604 pool. (I'm sure this information wasn't there when I asked this question, but I could be wrong...).

Do I need SSH tunnel to deploy Docker containers from Windows Server 2016 using Full CI/CD pipeline

Thank you very much for your help with the previous questions
Deploying Windows Containers (created with Docker) into Azure Container Service
Windows Container vs Docker Container and Azure Container Services/Kubernetes cluster with Linux OS
I am continuing my research and somewhat at a standstill as I try to follow the instructions of the following article that explains how to create CI/CD pipeline to deploy a multi-container application.
https://learn.microsoft.com/en-us/azure/container-service/dcos-swarm/container-service-docker-swarm-setup-ci-cd
The code sample that is referenced here is built for the Linux application, and I am not able to run it or create Docker container out of it.
Thus, I have following questions (those questions could be all over the place, my apologies for that)
When I create a .Net Core Web API on Windows 2016 server, is there any possibility for me to create an application that I could deploy to a Linux environment? (portable .NET Core Web API application)
When I would like to take advantage of CI/CD pipeline using Visual Studio Team Services, do I really need to create Azure Container Service with Docker Swarm? As far as I understand ACS is a Linux based environment whereas I would create Windows based docker containers on Windows Server 2016
Do I really need to be concerned with ACS and SSH tunnel when dealing with Windows Server 2016 based docker containers if I could easily deploy those containers to a Kubernetes cluster with Windows nodes
Is there an alternative way for me to deploy docker containers created on Windows Server 2016 using Full CI/CD pipeline to Visual Studio Team Services without using the Linux based SSH tunnel/ACS
Thank you very much for your generous input
Mikhail
1.When I create a .Net Core Web API on Windows 2016 server, is there any
possibility for me to create an application that I could deploy to a
Linux environment?
Yes, .Net core is a general purpose development platform maintained by Microsoft and the .NET community on GitHub. It is cross-platform, supporting Windows, macOS and Linux, and can be used in device, cloud, and embedded/IoT scenarios. So we can deploy .net core web api app on Linux environment.
Maybe we can refer to this link.
2.When I would like to take advantage of CI/CD pipeline using Visual
Studio Team Services, do I really need to create Azure Container
Service with Docker Swarm?
No, creating a CI/CD pipeline on Azure Container service with kubernetes and visual studio team services is available. More information about VSTS and ACS k8s, please refer to this link.
3.Do I really need to be concerned with ACS and SSH tunnel when dealing with Windows Server 2016 based docker containers if I could
easily deploy those containers to a Kubernetes cluster with Windows
nodes
If you want to use VSTS to deploy your .net core container, I think we should connect to ACS cluster.
If you want to use ACS k8s, we should add kubernetes connection:
4.Is there an alternative way for me to deploy docker containers created on Windows Server 2016 using Full CI/CD pipeline to Visual
Studio Team Services without using the Linux based SSH tunnel/ACS
Do you mean you want to use ACS, but don't want to connect Linux based SSH tunnel? If I am right, we can deploy a site-to-site VPN between your on-prem network and Azure Vnet, in this way, we can connect k8s like local.

Resources