首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Terraform构建并部署一个golang码头映像?

使用Terraform构建并部署一个golang码头映像?
EN

Stack Overflow用户
提问于 2022-08-29 03:06:43
回答 1查看 52关注 0票数 0

我正在尝试在Terraform中设置自动部署到我的golang服务器的Docker。

如果我手动部署,它就可以工作,但无法使terraform配置正常工作。

这是我所拥有的。

代码语言:javascript
运行
复制
resource "docker_image" "terraform_golang" {
  name = "terraform_golang"
  build {
    path = "./../"
    build_arg = {
      tag : "golang-server"
    }
    label = {
      author : "Bill"
    }
  }
}

resource "docker_container" "terraform_backend" {
  image = docker_image.terraform_golang.latest
  name  = "Terraform_Backend"
  env = [ "database=172.19.0.3:3306" ]
  ports {
    internal = 8080
    external = 8080
  }
  network_mode = "bridge"
  networks_advanced {
    name = "golang-server"
  }
}

这是我得到的错误:

代码语言:javascript
运行
复制
│ Error: failed to solve with frontend dockerfile.v0: failed to read dockerfile: Error processing tar file(exit status 1): unexpected EOF
│
│
│
│   with module.terraform.docker_image.terraform_golang,
│   on terraform\backend.tf line 2, in resource "docker_image" "terraform_golang":
│    2: resource "docker_image" "terraform_golang" {

下面是我的手动部署cmd,它正在工作:

代码语言:javascript
运行
复制
docker build . -t golang-server 

docker run --network=golang-server --name=golang-server --env database=172.19.0.3:3306 --expose=8080 -p=8080:8080/tcp golang-server

这是我的文档:

代码语言:javascript
运行
复制
FROM golang:1.18

WORKDIR $GOPATH/src

COPY . .

RUN go get -d -v ./...
RUN go install -v ./...


EXPOSE 8080

CMD ["golang-server"]

我的文件夹结构是这样设置的,这样我的terraform文件就在子文件夹中,在一个模块中,我希望这不会扰乱任何事情:

EN

回答 1

Stack Overflow用户

发布于 2022-08-29 03:55:38

“路径”只更改上下文路径,而不是找到停靠文件的路径。老实说,这就像一个bug,因为docker命令默认为PATH/Dockerfile作为停靠文件路径,但这就是terraform插件当前的工作方式。

您需要的是添加一个dockerfile参数来指向实际的Dockerfile;

代码语言:javascript
运行
复制
resource "docker_image" "terraform_golang" {
  name = "terraform_golang"
  build {
    dockerfile = "../Dockerfile"
    path = ".."
    build_arg = {
      tag : "golang-server"
    }
    label = {
      author : "Bill"
    }
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73523774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档