Terraform Docker Provider 的 image 属性陷阱与优雅解决
2025-03-27
在使用 Terraform 管理 Docker 容器时,Docker Provider 会将容器镜像的 `image` 属性转换为 SHA 摘要,导致后续 Terraform refresh 认为镜像已更改,从而强制重建容器。直接使用 `lifecycle { ignore_changes = [image] }` 会掩盖实际镜像变更,带来潜在风险。文章提出了一种优雅的解决方法:使用 `null_resource` 作为触发器,当 `image` 属性发生变化时,触发 `null_resource` 的重建,从而间接触发容器的重建,确保镜像更新的同时避免不必要的容器重建。
开发