You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Windows版Golang镜像名称?镜像拉取失败求助

解决GitLab CI中Golang Windows镜像找不到的问题及版本查询方法

1. 镜像找不到的核心原因

你碰到的No such image错误,主要是因为Golang官方Windows镜像的标签命名规则和你使用的格式不匹配:

  • 小版本号(比如1.12.6)通常不会单独生成Windows Server Core镜像,官方一般只针对主版本+次版本(比如1.12)发布对应的Windows镜像;
  • Windows镜像标签需要明确指定Windows Server Core的具体子版本,比如ltsc2016、ltsc2019,直接用windowsservercore不带后缀的标签大概率已经被废弃或不存在。

另外要注意:你的GitLab CI Runner必须是Windows环境的——Linux Runner无法运行Windows架构的Docker镜像,这也是导致镜像找不到的潜在隐藏原因。

2. 如何查找正确的Golang Windows镜像版本

你可以通过两种方式确认可用的Windows镜像标签:

  • 遵循官方标签命名规则:官方Golang镜像的Windows标签格式通常是golang:<主版本>.<次版本>-windowsservercore-<Windows Server版本>(比如golang:1.12-windowsservercore-ltsc2016),也有针对轻量场景的nanoserver后缀版本;
  • 用Docker命令查询:在Windows终端中执行以下命令,筛选官方发布的Windows相关镜像:
    docker search golang --filter "is-official=true" | findstr /i "windowsservercore nanoserver"
    
    这会直接列出所有带Windows镜像后缀的官方Golang镜像标签。

3. 适配Windows环境的GitLab CI配置示例

假设你选用golang:1.12-windowsservercore-ltsc2016镜像,需要把原来的Linux Shell命令替换为Windows PowerShell命令,调整后的配置如下:

image: golang:1.12-windowsservercore-ltsc2016
variables:
  BIN_NAME: example
  ARTIFACTS_DIR: artifacts
  GO_PROJECT: example
  GOPATH: C:\go
before_script:
  # 创建目录(PowerShell命令)
  - New-Item -Path "$env:GOPATH\src\$env:GO_PROJECT" -ItemType Directory -Force
  - New-Item -Path "$env:CI_PROJECT_DIR\$env:ARTIFACTS_DIR" -ItemType Directory -Force
  # 安装dep工具
  - go get -u github.com/golang/dep/cmd/dep
  # 复制项目文件到GOPATH
  - Copy-Item -Path "$env:CI_PROJECT_DIR\*" -Destination "$env:GOPATH\src\$env:GO_PROJECT\" -Recurse -Force
  # 切换到项目目录
  - Set-Location "$env:GOPATH\src\$env:GO_PROJECT"

内容的提问来源于stack exchange,提问作者user3755946

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:22:48