Windows 的 GitLab Runner 可以在 Windows 11 使用 process 隔離的 Docker 了

| | 0 Comments| 11:00
Categories:

之前 Heresy 就在《GitLab CI + Windows Docker 的一些紀錄 Part 2》抱怨過,GitLab Runner 如果要使用 Docker 作為 executor 的話,由於 Windows Runner 的作業系統版本會受限於 GitLab Runner 使用的 helper image 的支援度,這也導致如果要建立使用 Docker executor 模式的 Windows 版 GitLab runner 變得很麻煩。

像是之前 GitLab Runner 15.10 的時候,想在 Windows 11 的電腦上用 Docker executor 模式來跑 runner 的話,基本上就只會得到下面的錯誤:

ERROR: Preparation failed: detecting base image: unsupported Windows Version: 
Microsoft Windows Version 22H2 (OS Build 22621.1485)

而前一陣子,GitLab 更新到了 15.11 了(官方介紹),GitLab Runner 也同時更新到 15.11.0(changelog),這才終於更新了 Windows 版的 helper image,讓 Windows 11 的電腦可以使用 Docker executor 模式!

這邊官方的 issue 是《Add support for Windows Server 2022 = Windows Server 2022 21H2 = Windows 11 21H2 = Windows 11 22H2》,可以看到,這個 issue 開了也快一年了…

目前的 helper image 是:registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-436955cb-servercore21H2,雖然 tag 裡面寫的是基於 Windows Server Core 21H2,但是在最新的 Windows 11 22H2 上用也是沒問題的~

這也是因為之前在《不再被系統版本限制的 Windows 11 Docker》記錄過的,Windows 從 Server 2022 開始,終於把 Docker Image 和主機的版本相容性解決的關係;所以理論上,就算以後 Windows 11 更新到 23H2,也不像以前一樣、還得等 GitLab 更新 Helper image 才能跑了!

如此一來,之後應該就可以把手邊的 Windows Runner 都改成 Docker executor、然後用 process 隔離來跑了~不過麻煩的,是由於之前都是把 Docker 執行的指令寫在相關專案的 .gitalb-ci.yml 裡面,現在變得都得修改了。

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *