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

Terraform Docker Provider推送镜像至Docker Hub遇配置及认证问题求助

Terraform Docker Hub镜像推送配置修正

修正后的完整代码

terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "3.0.2"
    }
  }
}

provider "docker" {
  registry_auth {
    address  = "registry-1.docker.io"
    username = "skench" # 替换为你的Docker Hub用户名(不是登录邮箱)
    password = "your_docker_hub_access_token" # 建议用访问令牌而非密码,不要硬编码,可改用变量
  }
}

resource "docker_image" "application" {
  name = "skench/application" # 必须遵循「Docker Hub用户名/镜像名」格式
  build {
    context    = "." # 上下文为当前目录即可,无需指定./Dockerfile
    dockerfile = "Dockerfile"
  }
  keep_locally = false
}

resource "docker_registry_image" "application" {
  name = docker_image.application.name # 直接引用镜像资源的name属性,无需字符串包裹
}

关键修正点说明

  • Registry地址修正:Docker Hub的标准认证地址是registry-1.docker.io,无需追加/v1或/v2,provider会自动适配正确的API版本,错误地址会直接导致认证失败。
  • 镜像名称格式修正:Docker Hub要求个人仓库镜像名称必须是「用户名/镜像名」格式,否则无法推送到你的专属仓库,将application改为skench/application即可匹配你的账号。
  • 资源引用修正:docker_registry_image的name字段需要直接引用docker_image.application.name的资源属性,而非用字符串包裹,否则Terraform会将其视为普通文本,无法关联到构建好的镜像。
  • 安全建议:不要在代码中硬编码密码,建议在Docker Hub账号设置中创建专属访问令牌(路径:账号设置→安全→访问令牌),并通过Terraform变量或环境变量(如DOCKER_REGISTRY_PASSWORD)传入,避免敏感信息泄露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:42:15