我有一个升级FROM golang:1.9-alpine
到的项目,FROM golang:1.12-alpine
现在我的测试没有运行。现在是说:
$ docker-compose exec bot go vet
# runtime/cgo
exec: "gcc": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)
根据https://golang.org/doc/install/gccgo的文档,这是编译器。 为什么我可以在没有它的情况下运行我的应用程序,但没有它就无法运行测试? 我一直在查看更改日志,并且必须在涵盖此内容的地方丢失。
这是我的 Dockerfile:
FROM golang:1.12-alpine
RUN mkdir /app
WORKDIR /app
ADD src/ /app
# Fetch application dependencies
RUN apk add --no-cache --update git \
&& go get github.com/bwmarrin/discordgo \
&& go get github.com/jonas747/dshardmanager \
&& go get github.com/bugsnag/bugsnag-go \
&& apk del git
# Build binary
RUN go build -o main .
CMD ["/app/main"]
Run Code Online (Sandbox Code Playgroud)
Pau*_*kin 11
看起来您遇到了这个问题:https : //github.com/golang/go/issues/26988
建议的解决方法是在构建时设置这些环境变量:
CGO_ENABLED=0 GO111MODULE=off
Run Code Online (Sandbox Code Playgroud)
您可能还喜欢多阶段 docker 构建,以便您的最终 docker 映像最小(例如,不包括您从中编译的源文件和 go 编译器)。docker 文档中的一个示例如下:https : //docs.docker.com/develop/develop-images/multistage-build/
归档时间: |
|
查看次数: |
4598 次 |
最近记录: |