From 06d6564bc0f12bfe122a59badaad763829df0a5c Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Wed, 8 Sep 2021 16:13:11 +0200 Subject: [PATCH 1/8] Add server 2022 images --- .drone.starlark | 1 + .drone.yml | 33 +++++++++++++++++++++++++++++++++ docker/Dockerfile.windows.2022 | 20 ++++++++++++++++++++ docker/manifest.tmpl | 8 +++++++- 4 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 docker/Dockerfile.windows.2022 diff --git a/.drone.starlark b/.drone.starlark index ec15bb3..5ca8ea0 100644 --- a/.drone.starlark +++ b/.drone.starlark @@ -12,6 +12,7 @@ def main(ctx): linux('amd64'), windows('1903'), windows('1809'), + windows('2022'), ] after = manifest() diff --git a/.drone.yml b/.drone.yml index 10262fd..87efc51 100644 --- a/.drone.yml +++ b/.drone.yml @@ -99,6 +99,38 @@ steps: - push - tag +--- +kind: pipeline +type: ssh +name: windows-2022-amd64 + +platform: + os: windows + +server: + host: + from_secret: windows_server_2022 + password: + from_secret: windows_password + user: + from_secret: windows_username + +steps: +- name: build + commands: + - docker login -u $env:USERNAME -p $env:PASSWORD + - docker build -f docker/Dockerfile.windows.2022 -t drone/git:windows-2022-amd64 . + - docker push drone/git:windows-2022-amd64 + environment: + USERNAME: + from_secret: docker_username + PASSWORD: + from_secret: docker_password + +trigger: + event: + - push + --- kind: pipeline type: ssh @@ -221,6 +253,7 @@ depends_on: - linux-amd64 - linux-arm64 - linux-arm +- windows-2022-amd64 - windows-1909-amd64 - windows-1903-amd64 - windows-1809-amd64 diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 new file mode 100644 index 0000000..8c5417f --- /dev/null +++ b/docker/Dockerfile.windows.2022 @@ -0,0 +1,20 @@ +# escape=` + +FROM mcr.microsoft.com/windows/servercore:ltsc2022 AS git +SHELL ["powershell.exe", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] + +RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; ` + Invoke-WebRequest -UseBasicParsing https://github.com/git-for-windows/git/releases/download/v2.33.0.windows.2/MinGit-2.33.0.2-64-bit.zip -OutFile git.zip; ` + Expand-Archive git.zip -DestinationPath C:\git; + +FROM mcr.microsoft.com/powershell:nanoserver-ltsc2022 +COPY --from=git /git /git + +ADD windows/* /bin/ + +# https://github.com/PowerShell/PowerShell/issues/6211#issuecomment-367477137 +USER ContainerAdministrator +RUN setx /M PATH "%PATH%;C:\Program Files\PowerShell" + +SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] +CMD [ "pwsh", "C:\\bin\\clone.ps1" ] diff --git a/docker/manifest.tmpl b/docker/manifest.tmpl index 7a8ab73..db699f8 100644 --- a/docker/manifest.tmpl +++ b/docker/manifest.tmpl @@ -52,4 +52,10 @@ manifests: platform: architecture: amd64 os: windows - version: 1909 \ No newline at end of file + version: 1909 + - + image: drone/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-2022-amd64 + platform: + architecture: amd64 + os: windows + version: 2022 \ No newline at end of file From 5207df21ddaa82c71d36a139ee8e31699b4f26d6 Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Wed, 8 Sep 2021 16:20:23 +0200 Subject: [PATCH 2/8] simplify and speedup build --- docker/Dockerfile.windows.2022 | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 index 8c5417f..3857dce 100644 --- a/docker/Dockerfile.windows.2022 +++ b/docker/Dockerfile.windows.2022 @@ -1,14 +1,12 @@ # escape=` -FROM mcr.microsoft.com/windows/servercore:ltsc2022 AS git -SHELL ["powershell.exe", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] - -RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; ` - Invoke-WebRequest -UseBasicParsing https://github.com/git-for-windows/git/releases/download/v2.33.0.windows.2/MinGit-2.33.0.2-64-bit.zip -OutFile git.zip; ` - Expand-Archive git.zip -DestinationPath C:\git; - FROM mcr.microsoft.com/powershell:nanoserver-ltsc2022 -COPY --from=git /git /git + +RUN ` + mkdir tmp && mkdir bin` + && curl -sSfLo tmp/file.zip https://github.com/git-for-windows/git/releases/download/v2.33.0.windows.2/MinGit-2.33.0.2-64-bit.zip ` + && tar -C c:\git -oxzf tmp/file.zip` + && rmdir /Q /S tmp ADD windows/* /bin/ From b36fd646d692b309aa7c273e9ce99a3ade30fb9b Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Wed, 22 Sep 2021 12:42:05 +0200 Subject: [PATCH 3/8] Update docker/Dockerfile.windows.2022 --- docker/Dockerfile.windows.2022 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 index 3857dce..1a3bc0d 100644 --- a/docker/Dockerfile.windows.2022 +++ b/docker/Dockerfile.windows.2022 @@ -3,7 +3,7 @@ FROM mcr.microsoft.com/powershell:nanoserver-ltsc2022 RUN ` - mkdir tmp && mkdir bin` + mkdir tmp && mkdir git` && curl -sSfLo tmp/file.zip https://github.com/git-for-windows/git/releases/download/v2.33.0.windows.2/MinGit-2.33.0.2-64-bit.zip ` && tar -C c:\git -oxzf tmp/file.zip` && rmdir /Q /S tmp From 4f27d7ccce337b41b79b16f2fe51c15e3aac390d Mon Sep 17 00:00:00 2001 From: Julian Brunner Date: Fri, 15 Oct 2021 13:50:53 +0200 Subject: [PATCH 4/8] remove duplicate path entry --- docker/Dockerfile.windows.2022 | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 index 1a3bc0d..5fab2ec 100644 --- a/docker/Dockerfile.windows.2022 +++ b/docker/Dockerfile.windows.2022 @@ -12,7 +12,6 @@ ADD windows/* /bin/ # https://github.com/PowerShell/PowerShell/issues/6211#issuecomment-367477137 USER ContainerAdministrator -RUN setx /M PATH "%PATH%;C:\Program Files\PowerShell" SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] CMD [ "pwsh", "C:\\bin\\clone.ps1" ] From f4b2646e4b97ff5891a31c654913f089b968519d Mon Sep 17 00:00:00 2001 From: Julian Brunner Date: Fri, 15 Oct 2021 13:51:16 +0200 Subject: [PATCH 5/8] use regular user instead of ContainerAdministrator --- docker/Dockerfile.windows.2022 | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 index 5fab2ec..b64d4dc 100644 --- a/docker/Dockerfile.windows.2022 +++ b/docker/Dockerfile.windows.2022 @@ -10,8 +10,5 @@ RUN ` ADD windows/* /bin/ -# https://github.com/PowerShell/PowerShell/issues/6211#issuecomment-367477137 -USER ContainerAdministrator - SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] CMD [ "pwsh", "C:\\bin\\clone.ps1" ] From bcdd1728a83732680c620d4829a2cc7e050fdfb8 Mon Sep 17 00:00:00 2001 From: Julian Brunner Date: Fri, 15 Oct 2021 13:57:36 +0200 Subject: [PATCH 6/8] remove redundant shell directive --- docker/Dockerfile.windows.2022 | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 index b64d4dc..ee0097e 100644 --- a/docker/Dockerfile.windows.2022 +++ b/docker/Dockerfile.windows.2022 @@ -10,5 +10,4 @@ RUN ` ADD windows/* /bin/ -SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] CMD [ "pwsh", "C:\\bin\\clone.ps1" ] From bfd80b0ffd8088319b66f4461394b2a95c515607 Mon Sep 17 00:00:00 2001 From: Julian Brunner Date: Fri, 15 Oct 2021 13:58:58 +0200 Subject: [PATCH 7/8] simplify script invocation --- docker/Dockerfile.windows.2022 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 index ee0097e..e81a901 100644 --- a/docker/Dockerfile.windows.2022 +++ b/docker/Dockerfile.windows.2022 @@ -10,4 +10,4 @@ RUN ` ADD windows/* /bin/ -CMD [ "pwsh", "C:\\bin\\clone.ps1" ] +CMD ["pwsh", "/bin/clone.ps1"] From d25f764aba127166b95951bb46461399cd01ea81 Mon Sep 17 00:00:00 2001 From: Julian Brunner Date: Fri, 15 Oct 2021 14:30:09 +0200 Subject: [PATCH 8/8] set path in dockerfile instead of command script --- docker/Dockerfile.windows.2022 | 2 ++ windows/clone.ps1 | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile.windows.2022 b/docker/Dockerfile.windows.2022 index e81a901..77e5572 100644 --- a/docker/Dockerfile.windows.2022 +++ b/docker/Dockerfile.windows.2022 @@ -8,6 +8,8 @@ RUN ` && tar -C c:\git -oxzf tmp/file.zip` && rmdir /Q /S tmp +RUN setx PATH "%PATH%;/git/cmd;/git/mingw64/bin;/git/usr/bin" + ADD windows/* /bin/ CMD ["pwsh", "/bin/clone.ps1"] diff --git a/windows/clone.ps1 b/windows/clone.ps1 index 4be8cc4..fd43a86 100644 --- a/windows/clone.ps1 +++ b/windows/clone.ps1 @@ -1,9 +1,5 @@ $ErrorActionPreference = 'Stop'; -# HACK: no clue how to set the PATH inside the Dockerfile, -# so am setting it here instead. This is not idea. -$Env:PATH += ';C:\git\cmd;C:\git\mingw64\bin;C:\git\usr\bin' - # if the workspace is set we should make sure # it is the current working directory.