Skip to content

Commit e11770d

Browse files
committed
Add support for Windows Server Core 2016, 2022 and friends
- windows/servercore:ltsc2016 - windows/servercore:ltsc2022 - windows/nanoserver:ltsc2022
1 parent f31f41a commit e11770d

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

CHANGES.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ in progress
1515
- Add support for Windows Server Core 2019 and friends, like
1616
``windows/servercore:ltsc2019``, ``windows/nanoserver:1809``, or
1717
``eclipse-temurin:17-jdk``.
18-
18+
- Add support for Windows Server Core 2016, 2022 and friends, like
19+
``windows/servercore:ltsc2016``, ``windows/servercore:ltsc2022``, or
20+
``windows/nanoserver:ltsc2022``.
1921

2022
2022-05-20 0.2.0
2123
================

README.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,9 @@ Windows examples::
263263
# Nanoserver: 250 MB, Servercore: 6 GB, Servercore with Java: 7 GB, Windows: 15 GB
264264

265265
# Launch an interactive command prompt (cmd, PowerShell or Bash).
266+
racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2016-amd64 cmd
266267
racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2019-amd64 powershell
268+
racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2022-amd64 bash
267269

268270
# Launch a single command.
269271
racker --verbose run --rm --platform=windows/amd64 mcr.microsoft.com/windows/servercore:ltsc2019-amd64 -- 'powershell -Command {echo "Hello, world."}'
@@ -279,6 +281,7 @@ Windows examples::
279281

280282
# Invoke a Java command prompt (JShell) with different Java versions.
281283
racker run -it --rm --platform=windows/amd64 openjdk:18-windowsservercore-1809 jshell
284+
racker run -it --rm --platform=windows/amd64 openjdk:19-windowsservercore-ltsc2022 jshell
282285
racker run -it --rm --platform=windows/amd64 eclipse-temurin:18-jdk jshell
283286
System.out.println("OS: " + System.getProperty("os.name") + ", version " + System.getProperty("os.version"))
284287
System.out.println("Java: " + System.getProperty("java.vendor") + ", version " + System.getProperty("java.version"))
@@ -287,9 +290,12 @@ Windows examples::
287290
# Windows Nano Server.
288291
racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows/nanoserver:1809-amd64 cmd
289292
racker --verbose run --rm --platform=windows/amd64 mcr.microsoft.com/windows/nanoserver:1809-amd64 cmd /C echo Hello, world.
293+
racker --verbose run --rm --platform=windows/amd64 mcr.microsoft.com/windows/nanoserver:ltsc2022-amd64 cmd /C echo Hello, world.
294+
racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/powershell:nanoserver-ltsc2022 pwsh
290295

291296
# Full Windows.
292297
racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows:1809-amd64 cmd
298+
racker --verbose run -it --rm --platform=windows/amd64 mcr.microsoft.com/windows:ltsc2022-amd64 cmd
293299

294300

295301

postroj/winrunner.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323

2424
class WinRunner:
2525

26+
#BOX = "2016-box"
2627
BOX = "2019-box"
28+
#BOX = "2022-box"
2729
VCPUS = os.environ.get("RACKER_VM_VCPUS", 6)
2830
MEMORY = os.environ.get("RACKER_VM_MEMORY", 6144)
2931

@@ -44,7 +46,7 @@ def setup(self):
4446
logger.info(f"Installing Windows Docker Machine into {self.wdmdir}")
4547
command = f"""
4648
cd '{self.workdir}'
47-
git clone https://github.com/StefanScherer/windows-docker-machine
49+
git clone https://github.com/cicerops/windows-docker-machine --branch racker
4850
cd windows-docker-machine
4951
#ls -alF
5052
sed -i 's/v.cpus = [0-9]\+/v.cpus = {self.VCPUS}/' Vagrantfile
@@ -81,7 +83,11 @@ def start(self):
8183
# https://github.com/moby/moby/blob/0e04b514fb/integration-cli/docker_cli_run_test.go
8284
cmd(f"docker --context={self.BOX} ps", capture=True)
8385

84-
if "nanoserver" in self.image_base:
86+
# Skip installing software using Chocolatey for specific Windows OS versions.
87+
# - Windows Nanoserver does not have PowerShell.
88+
# - Windows 2016 croaks like:
89+
# `The command 'cmd /S /C choco install --yes git curl wget' returned a non-zero code: 3221225785`
90+
if "nanoserver" in self.image_base or self.BOX == "2016-box":
8591
self.image_real = self.image_base
8692
else:
8793
self.provision_image()

0 commit comments

Comments
 (0)