pause image: Disable DiagTrack service on Windows image

It has been observed that the DiagTrack service in the pause
image is consuming a non-trivial amount of CPU. We don't need
this service in the pause image, so we should disable it.

We can disable the service by running chntpw in a docker buildx Linux stage
and then copy the SYSTEM file back to the final Windows image.

Co-Authored-By: Mark Rossetti <marosset@microsoft.com>
Co-Authored-By: Davanum Srinivas <davanum@gmail.com>
This commit is contained in:
Claudiu Belu 2020-10-26 11:08:12 -07:00
parent 792b4b1e32
commit 3f7c09e601

View File

@ -18,6 +18,11 @@ ARG ARCH
ADD bin/pause-windows-${ARCH}.exe /pause.exe
ADD bin/wincat-windows-amd64 /Windows/System32/wincat.exe
# NOTE(claudiub): We're replacing the diagtrack.dll as a means to disable the
# DiagTrack service (it cannot run without this DLL). We do not need this
# service in the pause image and there's no reason for it to have any CPU usage.
ADD windows/pause.c /Windows/System32/diagtrack.dll
# NOTE(claudiub): docker buildx sets the PATH env variable to a Linux-like PATH,
# which is not desirable. See: https://github.com/moby/buildkit/issues/1560
# TODO(claudiub): remove this once the issue has been resolved.