Golang不知道大家是否熟悉?今天我将给大家介绍《Docker 构建失败:lstat /root/go:没有这样的文件或目录》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!
我正在对我的应用程序进行 docker 化,该应用程序在安装了 alpine:golang 和 goswagger 的自定义基础映像中运行。目前,我正在尝试通过实施多阶段构建来减小图像大小。但是当我跑步时
swagger 生成
它总是显示错误消息:
lstat /root/go:没有这样的文件或目录
谁能告诉我这是怎么回事?我已经检查了 root/go
目录,那里没有 go
文件夹是有效的,但我可以通过运行 go build 来确认 go 的安装。
这是我的 dockerfile
# Custom image with alpine and go:1.18.2 + goswagger installed
# Build binary stage
FROM gcrdomain/mycomp/go:1.18.2 as build
WORKDIR /app
# Install make
RUN apk add --no-cache make gcc libc-dev
COPY . .
# swagger validate + clean + generate
RUN make all
# Serve the binary stage
# Bare image with required deps to serve static binary
FROM scratch
WORKDIR /app
COPY --from=build /app/telemedicine-proxy-server /telemedicine-proxy-server
CMD ["/telemedicine-proxy-server", "--port=8080", "--host=0.0.0.0"]
正确答案
最后,我发现了问题,我检查了我们的自定义基础镜像,发现在我们的基础镜像 dockerfile 中,gopath
没有放置在 /root
中
env go_path=/go
我已经把它改成了
ENV GO_PATH=/root/go
一切都按预期进行,感谢所有评论!:d
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~