首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Dockerfile构建Go项目说明包不在GOROOT

从Dockerfile构建Go项目说明包不在GOROOT
EN

Stack Overflow用户
提问于 2022-02-22 00:22:54
回答 1查看 922关注 0票数 1

这是我拥有的Dockerfile:

代码语言:javascript
复制
FROM golang:1.13 AS go-build-env

FROM utilities:debug

# Build go binary
RUN apk add gcc go
ENV GO111MODULE=on \
    CGO_ENABLED=1 \
    GOOS=linux \
    GOARCH=amd64
COPY myApp/* myApp/
RUN cd myApp && go build && mv ./myApp ../

CMD bash

当它执行go build时,我得到了以下错误

代码语言:javascript
复制
 > [stage-1 5/8] RUN cd myApp && go build && mv ./myApp ../:                                              
#12 0.751 found packages main (main.go) and codec (zwrapper.go) in /myApp
#12 0.751 main.go:17:2: package codec is not in GOROOT (/usr/lib/go/src/codec)

我的GoApp结构是:

代码语言:javascript
复制
myApp
├── codec
│   └── zwrapper.go
├── go.mod
├── go.sum
├── main.go
└── vendor
    ├── codec
    │   └── zwrapper.go
    ├── github.com
    ...

当我从go build目录手动运行myApp时,它可以工作,但是在构建Dockerfile时,它一直在抱怨。我必须在Dockerfile中设置一个GOPATH和GOROOT吗?有什么办法可以绕过这件事吗?

EN

回答 1

Stack Overflow用户

发布于 2022-02-22 02:11:38

Go有一个用于构建位置的系统变量集位置(这是严格的)。这要么是您的主目录+go/src/或GOPATH。

在你的情况下,你必须设置你的GOPATH:

代码语言:javascript
复制
ENV GOPATH /myApp
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71214544

复制
相关文章

相似问题

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