Home

Awesome

HostProcess container base image

Overview

This project produces a minimal base image that can be used with HostProcess containers.

This image cannot be used with any other type of Windows container (process isolated, Hyper-V isolated, etc...)

Benefits

Using this image as a base for HostProcess containers has a few advantages over using other base images for Windows containers including:

Usage

Build your container from mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0.

Dockerfile example

Create hello-world.ps1 with the following content:

Write-output "Hello World!"

and Dockerfile.windows with the following content:

FROM mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0

ADD hello-world.ps1 .

ENV PATH="C:\Windows\system32;C:\Windows;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;"
ENTRYPOINT ["powershell.exe", "./hello-world.ps1"]

Build with BuildKit

Containers based on this image cannot currently be built with Docker Desktop. Instead use BuildKit or other tools.

Example:

Create a builder

One time step

docker buildx create --name img-builder --use --platform windows/amd64

Build your image

Use the following command to build and push to a container repository

 docker buildx build --platform windows/amd64 --output=type=registry -f {Dockerfile} -t {ImageTag} .

Container Manifests

As mentioned in Benefits above, HostProcess containers can run on any Windows Server version however there is currently logic in containerd to only pull Windows container images if the OSVersion defined in the container manifest matches the OSVersion of the node.

When building container images from this base image it is recommended to not include this image in a manifest-list and also not include any platform information in the manifest for now.

Please see https://github.com/containerd/containerd/issues/7431 for more information.

Licensing

Code is the repository is released under the MIT license.

The container images produced by this repository are distributed under the CC0 license.