This project produces a minimal "scratch" image that can be used with HostProcess containers.
Using this image as a bash for HostProcess containers has a few advantages over using other base images for Windows containers including:
- Size - This image is a few KB. Even the smallest official base image (NanoServer) is still a few hundred MB is size.
- OS compatibility - HostProcess containers do not inherit the same compatibility requirements as Windows server containers and because of this it does not make sense to include all of the runtime / system binaries that make up the different base layers. Using this image allows for a single container image to be used on any Windows Server version which can greatly simplify container build processes.
Build your container from ghcr.io/marosset/host-process-scratch-image:latest
.
FROM ghcr.io/marosset/host-process-scratch-image:latest
ADD hello-world.ps1 .
ENV PATH="C:\Windows\system32;C:\Windows;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;"
ENTRYPOINT ["powershell.exe", "./hello-world.ps1"]
Containers based on this image cannot currently be built with Docker Desktop. Instead use BuildKit or other tools.
Example:
One time step
docker buildx create --name img-builder --use --platform windows/and64
Use the following command to build and push to a container reposity
docker buildx build --platform windows/amd64 --output=type=registry -f {Dockerfile} -t {ImageTag} .