From 3070ebd7da11876c25d2e16f5600e86f7d15ea2b Mon Sep 17 00:00:00 2001 From: tapankarangiya Date: Tue, 7 Jul 2026 13:40:18 +0530 Subject: [PATCH 1/3] feat: [CI-23609]: docker files for windows 2025 --- docker/acr/Dockerfile.windows.amd64.ltsc2025 | 10 ++++++ docker/acr/manifest.tmpl | 6 ++++ .../docker/Dockerfile.windows.amd64.ltsc2025 | 32 +++++++++++++++++++ docker/docker/manifest.tmpl | 6 ++++ docker/ecr/Dockerfile.windows.amd64.ltsc2025 | 10 ++++++ docker/ecr/manifest.tmpl | 6 ++++ docker/gar/Dockerfile.windows.amd64.ltsc2025 | 10 ++++++ docker/gar/manifest.tmpl | 6 ++++ docker/gcr/Dockerfile.windows.amd64.ltsc2025 | 10 ++++++ docker/gcr/manifest.tmpl | 6 ++++ 10 files changed, 102 insertions(+) create mode 100644 docker/acr/Dockerfile.windows.amd64.ltsc2025 create mode 100644 docker/docker/Dockerfile.windows.amd64.ltsc2025 create mode 100644 docker/ecr/Dockerfile.windows.amd64.ltsc2025 create mode 100644 docker/gar/Dockerfile.windows.amd64.ltsc2025 create mode 100644 docker/gcr/Dockerfile.windows.amd64.ltsc2025 diff --git a/docker/acr/Dockerfile.windows.amd64.ltsc2025 b/docker/acr/Dockerfile.windows.amd64.ltsc2025 new file mode 100644 index 0000000..8dcdfce --- /dev/null +++ b/docker/acr/Dockerfile.windows.amd64.ltsc2025 @@ -0,0 +1,10 @@ +# escape=` +FROM plugins/docker:windows-ltsc2025-amd64 + +LABEL maintainer="Drone.IO Community " ` + org.label-schema.name="Drone ACR" ` + org.label-schema.vendor="Drone.IO Community" ` + org.label-schema.schema-version="1.0" + +ADD release/windows/amd64/drone-acr.exe C:/bin/drone-acr.exe +ENTRYPOINT [ "C:\\bin\\drone-acr.exe" ] diff --git a/docker/acr/manifest.tmpl b/docker/acr/manifest.tmpl index d3bfb93..06913c2 100644 --- a/docker/acr/manifest.tmpl +++ b/docker/acr/manifest.tmpl @@ -29,3 +29,9 @@ manifests: architecture: amd64 os: windows version: ltsc2022 + - + image: plugins/acr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-ltsc2025-amd64 + platform: + architecture: amd64 + os: windows + version: ltsc2025 diff --git a/docker/docker/Dockerfile.windows.amd64.ltsc2025 b/docker/docker/Dockerfile.windows.amd64.ltsc2025 new file mode 100644 index 0000000..f117b71 --- /dev/null +++ b/docker/docker/Dockerfile.windows.amd64.ltsc2025 @@ -0,0 +1,32 @@ +# escape=` +FROM mcr.microsoft.com/windows/servercore:ltsc2025 as download + +SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + +ENV DOCKER_VERSION 19.03.1 + +RUN Invoke-WebRequest 'http://constexpr.org/innoextract/files/innoextract-1.7-windows.zip' -OutFile 'innoextract.zip' -UseBasicParsing ; ` + Expand-Archive innoextract.zip -DestinationPath C:\ ; ` + Remove-Item -Path innoextract.zip + +RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; ` + Invoke-WebRequest $('https://github.com/docker/toolbox/releases/download/v{0}/DockerToolbox-{0}.exe' -f $env:DOCKER_VERSION) -OutFile 'dockertoolbox.exe' -UseBasicParsing +RUN /innoextract.exe dockertoolbox.exe + +FROM mcr.microsoft.com/windows/nanoserver:ltsc2025 +USER ContainerAdministrator + +LABEL maintainer="Drone.IO Community " ` + org.label-schema.name="Drone Docker" ` + org.label-schema.vendor="Drone.IO Community" ` + org.label-schema.schema-version="1.0" + +RUN mkdir C:\bin + +# Install cosign for container image signing +ADD https://github.com/sigstore/cosign/releases/download/v2.5.3/cosign-windows-amd64.exe C:/bin/cosign.exe + +COPY --from=download /windows/system32/netapi32.dll /windows/system32/netapi32.dll +COPY --from=download /app/docker.exe C:/bin/docker.exe +ADD release/windows/amd64/drone-docker.exe C:/bin/drone-docker.exe +ENTRYPOINT [ "C:\\bin\\drone-docker.exe" ] diff --git a/docker/docker/manifest.tmpl b/docker/docker/manifest.tmpl index ac65caf..9e33fd2 100644 --- a/docker/docker/manifest.tmpl +++ b/docker/docker/manifest.tmpl @@ -29,3 +29,9 @@ manifests: architecture: amd64 os: windows version: ltsc2022 + - + image: plugins/docker:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-ltsc2025-amd64 + platform: + architecture: amd64 + os: windows + version: ltsc2025 diff --git a/docker/ecr/Dockerfile.windows.amd64.ltsc2025 b/docker/ecr/Dockerfile.windows.amd64.ltsc2025 new file mode 100644 index 0000000..f402a74 --- /dev/null +++ b/docker/ecr/Dockerfile.windows.amd64.ltsc2025 @@ -0,0 +1,10 @@ +# escape=` +FROM plugins/docker:windows-ltsc2025-amd64 + +LABEL maintainer="Drone.IO Community " ` + org.label-schema.name="Drone ECR" ` + org.label-schema.vendor="Drone.IO Community" ` + org.label-schema.schema-version="1.0" + +ADD release/windows/amd64/drone-ecr.exe C:/bin/drone-ecr.exe +ENTRYPOINT [ "C:\\bin\\drone-ecr.exe" ] diff --git a/docker/ecr/manifest.tmpl b/docker/ecr/manifest.tmpl index a97f75d..2194fe0 100644 --- a/docker/ecr/manifest.tmpl +++ b/docker/ecr/manifest.tmpl @@ -29,3 +29,9 @@ manifests: architecture: amd64 os: windows version: ltsc2022 + - + image: plugins/ecr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-ltsc2025-amd64 + platform: + architecture: amd64 + os: windows + version: ltsc2025 diff --git a/docker/gar/Dockerfile.windows.amd64.ltsc2025 b/docker/gar/Dockerfile.windows.amd64.ltsc2025 new file mode 100644 index 0000000..43fc94b --- /dev/null +++ b/docker/gar/Dockerfile.windows.amd64.ltsc2025 @@ -0,0 +1,10 @@ +# escape=` +FROM plugins/docker:windows-ltsc2025-amd64 + +LABEL maintainer="Drone.IO Community " ` + org.label-schema.name="Drone GAR" ` + org.label-schema.vendor="Drone.IO Community" ` + org.label-schema.schema-version="1.0" + +ADD release/windows/amd64/drone-gar.exe C:/bin/drone-gar.exe +ENTRYPOINT [ "C:\\bin\\drone-gar.exe" ] diff --git a/docker/gar/manifest.tmpl b/docker/gar/manifest.tmpl index 8946956..7b914ce 100644 --- a/docker/gar/manifest.tmpl +++ b/docker/gar/manifest.tmpl @@ -29,3 +29,9 @@ manifests: architecture: amd64 os: windows version: ltsc2022 + - + image: plugins/gar:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-ltsc2025-amd64 + platform: + architecture: amd64 + os: windows + version: ltsc2025 diff --git a/docker/gcr/Dockerfile.windows.amd64.ltsc2025 b/docker/gcr/Dockerfile.windows.amd64.ltsc2025 new file mode 100644 index 0000000..dc20d0f --- /dev/null +++ b/docker/gcr/Dockerfile.windows.amd64.ltsc2025 @@ -0,0 +1,10 @@ +# escape=` +FROM plugins/docker:windows-ltsc2025-amd64 + +LABEL maintainer="Drone.IO Community " ` + org.label-schema.name="Drone GCR" ` + org.label-schema.vendor="Drone.IO Community" ` + org.label-schema.schema-version="1.0" + +ADD release/windows/amd64/drone-gcr.exe C:/bin/drone-gcr.exe +ENTRYPOINT [ "C:\\bin\\drone-gcr.exe" ] diff --git a/docker/gcr/manifest.tmpl b/docker/gcr/manifest.tmpl index c2a60c8..ec98187 100644 --- a/docker/gcr/manifest.tmpl +++ b/docker/gcr/manifest.tmpl @@ -29,3 +29,9 @@ manifests: architecture: amd64 os: windows version: ltsc2022 + - + image: plugins/gcr:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-ltsc2025-amd64 + platform: + architecture: amd64 + os: windows + version: ltsc2025 From 35365e35c885109afef8b092b40dcd39259edff7 Mon Sep 17 00:00:00 2001 From: tapankarangiya Date: Tue, 7 Jul 2026 18:06:11 +0530 Subject: [PATCH 2/3] feat: [CI-23609]: docker files for windows 2025 --- docker/docker/Dockerfile.windows.amd64.ltsc2025 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/docker/Dockerfile.windows.amd64.ltsc2025 b/docker/docker/Dockerfile.windows.amd64.ltsc2025 index f117b71..67cee9f 100644 --- a/docker/docker/Dockerfile.windows.amd64.ltsc2025 +++ b/docker/docker/Dockerfile.windows.amd64.ltsc2025 @@ -26,7 +26,9 @@ RUN mkdir C:\bin # Install cosign for container image signing ADD https://github.com/sigstore/cosign/releases/download/v2.5.3/cosign-windows-amd64.exe C:/bin/cosign.exe -COPY --from=download /windows/system32/netapi32.dll /windows/system32/netapi32.dll +# nanoserver:ltsc2025 ships netapi32.dll natively (unlike 1809/ltsc2022 where we +# had to copy it in from servercore). Overwriting the ltsc2025 copy fails with +# "Access is denied" because system32 files are locked, so we skip that COPY. COPY --from=download /app/docker.exe C:/bin/docker.exe ADD release/windows/amd64/drone-docker.exe C:/bin/drone-docker.exe ENTRYPOINT [ "C:\\bin\\drone-docker.exe" ] From 994fe7a8e447c8b4f00a1ae02616eb4f21d22419 Mon Sep 17 00:00:00 2001 From: tapankarangiya Date: Wed, 8 Jul 2026 16:16:19 +0530 Subject: [PATCH 3/3] feat: [CI-23609]: docker files for windows 2025 --- .../docker/Dockerfile.windows.amd64.ltsc2025 | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docker/docker/Dockerfile.windows.amd64.ltsc2025 b/docker/docker/Dockerfile.windows.amd64.ltsc2025 index 67cee9f..d91895d 100644 --- a/docker/docker/Dockerfile.windows.amd64.ltsc2025 +++ b/docker/docker/Dockerfile.windows.amd64.ltsc2025 @@ -3,15 +3,17 @@ FROM mcr.microsoft.com/windows/servercore:ltsc2025 as download SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] -ENV DOCKER_VERSION 19.03.1 - -RUN Invoke-WebRequest 'http://constexpr.org/innoextract/files/innoextract-1.7-windows.zip' -OutFile 'innoextract.zip' -UseBasicParsing ; ` - Expand-Archive innoextract.zip -DestinationPath C:\ ; ` - Remove-Item -Path innoextract.zip +# Modernized for ltsc2025: fetch the standalone Docker CLI matching the daemon +# generation used on Windows Server 2025 hosts (28.x). Replaces the 1809/ltsc2022 +# pattern of extracting docker.exe from DockerToolbox 19.03.1 via innoextract. +ENV DOCKER_VERSION 28.4.0 RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; ` - Invoke-WebRequest $('https://github.com/docker/toolbox/releases/download/v{0}/DockerToolbox-{0}.exe' -f $env:DOCKER_VERSION) -OutFile 'dockertoolbox.exe' -UseBasicParsing -RUN /innoextract.exe dockertoolbox.exe + Invoke-WebRequest -UseBasicParsing ` + $('https://download.docker.com/win/static/stable/x86_64/docker-{0}.zip' -f $env:DOCKER_VERSION) ` + -OutFile docker.zip ; ` + Expand-Archive docker.zip -DestinationPath C:\ ; ` + Remove-Item docker.zip FROM mcr.microsoft.com/windows/nanoserver:ltsc2025 USER ContainerAdministrator @@ -29,6 +31,6 @@ ADD https://github.com/sigstore/cosign/releases/download/v2.5.3/cosign-windows-a # nanoserver:ltsc2025 ships netapi32.dll natively (unlike 1809/ltsc2022 where we # had to copy it in from servercore). Overwriting the ltsc2025 copy fails with # "Access is denied" because system32 files are locked, so we skip that COPY. -COPY --from=download /app/docker.exe C:/bin/docker.exe +COPY --from=download /docker/docker.exe C:/bin/docker.exe ADD release/windows/amd64/drone-docker.exe C:/bin/drone-docker.exe ENTRYPOINT [ "C:\\bin\\drone-docker.exe" ]