Windows Containers Support Overview
Using Docker on Windows in Codefresh
Codefresh pipelines have the option to support Windows based containers.
If you have projects in your organization based on the .NET Framework or are in transition from Windows to Linux based projects and still need to have CI/CD pipelines for Windows containers, you’ll now be able to achieve this by using Codefresh.
Note: To enable Windows builds on your Codefresh account please contact sales
Once approved, you will get access to a new runtime environment on a dedicated Windows Server version 1709 VM. This means that you will be able to run both Windows and Linux/x86 builds from the same Codefresh account by choosing the appropriate pipeline settings.
Note: For .NET Core projects you can use a standard Linux based Codefresh account. See our example. Codefresh Windows pipelines support the following Codefresh steps: Clone, Build, Push, Composition, Deploy and Freestyle. Please refer to our steps documentation to learn more about each of them.
Example
In this example we’ll perform the following steps:
-
Clone our git repository and build a .NET Framework image.
-
Run our dotnet unit tests and according to the results annotate the image accordingly.
-
Push to Dockerhub if our tests have passed.
version: '1.0'
steps:
BuildingDockerImage:
title: Building Docker Image
type: build
image_name: codefresh/dotnetapp
working_directory: ./samples/dotnetapp
tag: '${{CF_BRANCH_TAG_NORMALIZED}}'
dockerfile: Dockerfile
RunningUnitTests:
title: Running Unit Tests
image: '${{BuildingDockerImage}}'
command: dotnet test
on_success:
metadata:
set:
- '${{BuildingDockerImage.imageId}}':
- CF_QUALITY: true
- repo_owner: '${{CF_REPO_OWNER}}'
- repo_name: '${{CF_REPO_NAME}}'
- branch_name: '${{CF_BRANCH}}'
- commit_author: '${{CF_COMMIT_AUTHOR}}'
- commit_url: '${{CF_COMMIT_URL}}'
- commit_message: '${{CF_COMMIT_MESSAGE}}'
on_fail:
metadata:
set:
- '${{BuildingDockerImage.imageId}}':
- CF_QUALITY: false
PushingToDockerRegistry:
title: Pushing to Docker Registry
type: push
candidate: '${{BuildingDockerImage}}'
tag: '${{CF_BRANCH_TAG_NORMALIZED}}'
registry: dockerhub
Related articles
Introduction to pipelines
Creating pipelines
Codefresh YAML
Installation options