我使用以下可正常运行的docker文件
该项目是一个cli,当我运行命令docker run -it cli
我从cli中得到了错误(因为入口点仅在运行fzr ENTRYPOINT [“./fzr”],所以可以)

通常我在机器上像fzr -helpfzr version等运行

我希望当我使用docker run -it cli这样的命令时,我能够在容器内运行命令

fzr -helpfzr version一样,我该怎么做?

FROM golang:1.10.5 AS build-env


ADD https://github.com/golang/dep/releases/download/v0.4.2/dep-linux-amd64 /usr/bin/dep
RUN chmod +x /usr/bin/dep

RUN mkdir -p $GOPATH/src/github.com/fzr
WORKDIR  $GOPATH/src/github.com/fzr


COPY Gopkg.toml Gopkg.lock ./

# install project dep
RUN dep ensure

COPY . ./

RUN  go build  -o /fzr

FROM scratch
COPY --from=build-env /fzr ./
ENTRYPOINT ["./fzr"]

最佳答案

TL; DR;
docker run -it cli版本

如果将ENTRYPOINT设置为二进制文件,则在映像名称之后传递的所有内容都将用作该二进制文件的arg。如果出于某种原因您需要覆盖入口点,请使用--entrypoint标志来运行docker。

09-18 11:20