我是 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
.
- 1 回答
- 0 关注
- 69 浏览
添加回答
举报
0/150
提交
取消