gpt4 book ai didi

docker - 构建 Docker 镜像时 Go 构建失败

转载 作者:IT王子 更新时间:2023-10-29 01:08:50 25 4
gpt4 key购买 nike

我对 golang 有点陌生,我仍在努力了解 go run main.gogo build [-o] main.go 之间的区别

我构建了一个小的 gin 应用程序来在本地试用 docker 和 kubernetes。

package main

import (
"net/http"

"github.com/gin-gonic/gin"
)

func main() {

r := gin.Default()

r.GET("/healthz", func(c *gin.Context) {
c.String(http.StatusOK, "")
})

r.GET("/readinez", func(c *gin.Context) {
c.String(http.StatusOK, "")
})

r.Run() // listen and serve on 0.0.0.0:8080
}

使用 go run main.go 可以完美地运行该应用程序。

我的 Dockerfile:

FROM golang:latest
RUN mkdir /app
ADD . /app/
WORKDIR /app
RUN go build -o main .
CMD ["/app/main"]

失败了:

enter image description here

它肯定在那里,当我 go run main.go 时它也有效。构建有什么区别?

我不确定在这里做什么。来自节点背景。这确实让新手有些发疯……当然有一个简单的解决方案。

最佳答案

程序在您的机器上运行成功,因为您可能已经安装了 gin 包。您不能假设容器将拥有它,并且应该明确安装它。只需将以下行添加到您的 dockerfile 中的 go build 行之前:

RUN go get github.com/gin-gonic/gin

关于docker - 构建 Docker 镜像时 Go 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47486811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com