我使用以下可正常运行的docker文件
该项目是一个cli
,当我运行命令docker run -it cli
时
我从cli中得到了错误(因为入口点仅在运行fzr ENTRYPOINT [“./fzr”],所以可以)
通常我在机器上像fzr -help
或fzr version
等运行
我希望当我使用docker run -it cli
这样的命令时,我能够在容器内运行命令
像fzr -help
和fzr 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。