Starting with Docker v29.2.0 running dockerd --register-service tries to confirm virtualization is enabled. Our installation script does enable virtualization, but doesn't reboot between that and dockerd --register-service. This feels like a bug with Docker since dockerd doesn't really need to load vmcompute.dll to register itself.
CloudWatch log for the image builder has this error:
| 2026-02-03T16:22:44.303Z | Stdout: DEBUG: 16+ >>>> dockerd --register-service
| 2026-02-03T16:22:44.435Z | Stdout: DEBUG: 17+ if ( >>>> $LASTEXITCODE -ne 0) { throw "Exit code is $LASTEXITCODE" }
| 2026-02-03T16:22:44.437Z | Stdout: DEBUG: 17+ if ($LASTEXITCODE -ne 0) { >>>> throw "Exit code is $LASTEXITCODE" }
| 2026-02-03T16:22:44.639Z | CmdExecution: Command execution has been completed
| 2026-02-03T16:22:44.639Z | CmdExecution: [ ERROR ] Command execution has resulted in an error
| 2026-02-03T16:22:44.639Z | CmdExecution: Stderr: system requirements not met: failed to load vmcompute.dll, ensure that the Containers feature is installed Exit code is 1 At C:\Windows\SystemTemp\AWSTOE2730943766\script-152372072.ps1:17 char:28 + if ($LASTEXITCODE -ne 0) { throw "Exit code is $LASTEXITCODE" } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (Exit code is 1:String) [], RuntimeException + FullyQualifiedErrorId : Exit code is 1
| 2026-02-03T16:22:44.639Z | CmdExecution: ExitCode 1
This breaks building of runner images for Windows. The quickest workaround right now is to remove docker from your images with something like:
const ec2WindowsImageBuilder = Ec2RunnerProvider.imageBuilder(stack, 'Windows EC2 Builder', {
os: Os.WINDOWS,
});
// remove docker installation step
ec2WindowsImageBuilder.removeComponent(RunnerImageComponent.docker());
new GitHubRunners(stack, 'runners', {
providers: [
new Ec2RunnerProvider(stack, 'EC2 Windows', {
labels: ['ec2', 'windows', 'x64'],
imageBuilder: ec2WindowsImageBuilder,
vpc,
}),
],
});
Starting with Docker v29.2.0 running
dockerd --register-servicetries to confirm virtualization is enabled. Our installation script does enable virtualization, but doesn't reboot between that anddockerd --register-service. This feels like a bug with Docker sincedockerddoesn't really need to load vmcompute.dll to register itself.CloudWatch log for the image builder has this error:
This breaks building of runner images for Windows. The quickest workaround right now is to remove docker from your images with something like: