Azure DevOps pipelines and databases

DevOps leaders prefer Docker SQL Server containers with database clones for Azure DevOps pipelines.

  • Fresh databases for pipeline runs - Scale your pipeline runs easily with a separate database environment with a writeable database for each pipeline run. No need to restore databases.
  • Reduced VM and instance sprawl - Avoid costly VMs and instances for DevOps pipelines. Instead, spin up a container with data for a pipeline run and delete it after the run completes.
  • REST API, kubectl or docker - Use a REST API, kubectl or docker command in your pipeline to spin up the database environments.

Windocks delivers databases in containers for Azure DevOps pipelines

Windocks SQL Server containers, cloning and masking let you easily deploy databases to test and staging. Windocks orchestration allows you to combine all these into a single pipeline step without the need for you to write custom code. Simply provide a spec (in the form of a dockerfile) and Windocks will orchestrate the cloning, masking, containerization, production refresh services and abstract the deployment into a single pipeline step.

Steps to get started on DevOps pipelines and databases

1. Install Windocks

Download the Windocks Community Edition or email for a full featured evaluation edition.


Provision a Windows Server VM (Server 2016, 2019, or 2022), install SQL Server (for SQL database delivery) and then install Windocks as described here.


For Oracle database delivery, also install the Windocks service for Linux as described here.

2. Provide the spec to the Windocks orchestrator to build the image


  • the path to one or more SQL backup or database files or Azure SQL BACPAC files, which database cloning to use  Windocks database cloning or volume cloning from other companies)
  • where to deliver the database clones (Windocks SQL Server Windows containers or SQL Server instances)
  • how often to refresh from production, customizations such as database scripts to be applied
  • which masking software to use (Windocks masking, other masking solutions or scripts)
  • authorization controls

The spec is provided in the form of a dockerfile. Build the image via a web application, command line or REST API.


Tutorial to build image from spec

3. Create the Yaml for the DevOps pipeline

Use the sample to create a Yaml file with steps for the DevOps pipeline. Substitute the content in the steps to make REST API calls to the Windocks server to create clones with containers. Email for sample Azure Pipeline Yaml. Put in variable values in the Yaml for the IP / DNS for the server running Windocks, the as user name and password you want for the containers, the credentials for the Windocks server, and the image name from step 1.

4. Create the pipeline in Azure DevOps

In Azure DevOps UI, create a repository and push the pipeline Yaml to the repo. Then, create a pipeline pointing to the Yaml

5. Run the pipeline in Azure DevOps

Either manually run the pipeline in the UI or push to the repo to trigger a pipeline run. See the pipeline logs. The database clones are available in containers created by the pipeline running on the Windocks machine on different ports as specified in the Yaml.

Extend CI/CD to your data layer