我是 Docker 的新手,我有一些菜鸟问题。我已经按照本教程改进了 Docker 文件。单个构建工作正常,但是当我使用scratch图像时多阶段失败。
Docker 文件是:
# syntax=docker/dockerfile:1
##
## STEP 1 - BUILD
##
# specify the base image to be used for the application, alpine or ubuntu
FROM 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 image
ENV GO111MODULE=on
WORKDIR /app
# copy Go modules and dependencies to image
COPY . .
# download Go modules and dependencies
# RUN go mod download
# compile application
RUN go build .
##
## STEP 2 - DEPLOY
##
FROM scratch
WORKDIR /
FROM scratch
WORKDIR /
COPY --from=build app/query_check_span /
EXPOSE 8080
ENTRYPOINT [ "/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为例如。
你知道我做错了什么吗?我怎样才能使用临时图像运行容器?
沧海一幻觉
相关分类