为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 dockerfile 中构建 Golang

无法在 dockerfile 中构建 Golang

Go
慕娘9325324 2023-02-06 18:54:35
我的项目结构如下: https ://i.stack.imgur.com/SqqDh.png这是我的 Dockerfile:FROM golang:1.19ADD . /go/src/myappWORKDIR /go/src/myappRUN go mod init cloudmetaRUN go get github.com/go-sql-driver/mysqlRUN go get -u github.com/gin-gonic/ginRUN go build -o bin/cloudmetaCMD [ "bin/cloudmeta" ]当我尝试构建我的 docker-container 时出现此错误:package cloudmeta/backend/handlers is not in GOROOT (/usr/local/go/src/cloudmeta/backend/handlers)
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

在 docker 中构建 Go 代码时,你不应该使用go mod init. 查看来自 docker docs的以下示例dockerfile:

# syntax=docker/dockerfile:1


FROM golang:1.16-alpine


WORKDIR /app


COPY go.mod ./

COPY go.sum ./

RUN go mod download


COPY *.go ./


RUN go build -o /docker-gs-ping


EXPOSE 8080


CMD [ "/docker-gs-ping" ]

docker docs 指南更深入地总结了一些事情:

  1. 您应该将您的go.modgo.sum文件复制到图像中的项目目录中。

  2. 现在您可以运行go mod download命令来安装所需的 go 模块。

  3. 然后你需要将你的源代码复制到图像中。

  4. 现在您可以使用go build命令编译源代码。


查看完整回答
反对 回复 2023-02-06
  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号