我是 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 關注
- 86 瀏覽
添加回答
舉報
0/150
提交
取消