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

从头开始找不到多阶段构建 exec go 文件

从头开始找不到多阶段构建 exec go 文件

Go
三国纷争 2022-12-26 10:44:31
我是 Docker 的新手,我有一些菜鸟问题。我已经按照本教程改进了 Docker 文件。单个构建工作正常,但是当我使用scratch图像时多阶段失败。Docker 文件是:# syntax=docker/dockerfile:1#### STEP 1 - BUILD### specify the base image to  be used for the application, alpine or ubuntuFROM golang:1.18-alpine AS build# None root user# RUN addgroup -S qcheckgroup && adduser -S qcheck -G qcheckgroup# USER qcheck# create a working directory inside the imageENV GO111MODULE=onWORKDIR /app# copy Go modules and dependencies to imageCOPY . .# download Go modules and dependencies# RUN go mod download# compile applicationRUN go build .#### STEP 2 - DEPLOY##FROM scratchWORKDIR /FROM scratchWORKDIR /COPY --from=build app/query_check_span /EXPOSE 8080ENTRYPOINT [ "/query_check_span" ]构建过程工作正常docker build -t qcheck:multi -f .\Dockerfile.multi .,但是当我尝试运行容器时docker run qcheck:multi出现以下错误:exec /query_check_span: no such file or directory。看起来问题是scratch image无法执行编译好的go程序。我确认当我将图像更改apline为例如。你知道我做错了什么吗?我怎样才能使用临时图像运行容器?
查看完整描述

1 回答

?
沧海一幻觉

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

在您的构建阶段,您应该RUN go build -o ./query_check_span代替RUN go build .. 该命令将输出名称为query_check_span.



查看完整回答
反对 回复 2022-12-26
  • 1 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信