我刚刚开始学习 Terraform,因此为了练习一些基本示例,我接手了一个简单的项目,我需要在其中编写 Terraform 配置文件:
nginx:latest
作为基础镜像。/usr/share/nginx/html
目录下。"Webserver"
的 Docker 映像,并在端口 5000 上运行名为 "webcontainer"
的 Docker 容器。https://localhost:5000
以验证部署是否成功。
我编写了以下配置文件,但是当我尝试使用 terraform apply 执行它时,出现以下错误:我尝试寻找解决方案,但找不到任何东西。我找到了一个答案并尝试了故障排除步骤,但没有成功。我想知道该问题是否与 Windows 11 上的 Docker Desktop 应用程序设置有关,或者是否是我的代码中的某些内容导致了该问题。您能帮我解决这个问题吗?
错误:
Error: failed to read downloaded context: failed to load cache key: invalid response status 403
│
│ with docker_image.webserver,
│ on main.tf line 13, in resource "docker_image" "webserver":
│ 13: resource "docker_image" "webserver" {
文件结构:
Devops
- main.tf
- index.html
- Dockerfile
代码:
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "3.0.2"
}
}
}
provider "docker" {}
# Build a Docker image
resource "docker_image" "webserver" {
name = "webserver"
build {
context = "~/Desktop/Devops/Dockerfile"
dockerfile = "~/Desktop/Devops/Dockerfile"
}
}
# Run a Docker container
resource "docker_container" "webcontainer" {
image = docker_image.webserver.image_id
name = "webcontainer"
ports {
internal = 80
external = 5000
}
}
# Copy index.html to the directory
resource "local_file" "index_html" {
filename = "~/Desktop/Devops/index.html"
content = file("~/Desktop/Devops/index.html")
}
我认为上下文应该是一个目录,因此编辑此行可以解决问题:
resource "docker_image" "webserver" {
name = "webserver"
build {
context = "~/Desktop/Devops"
dockerfile = "Dockerfile"
}
}