我可以将 Docker 运行参数传递给可选的 Golang 标志吗?

In0*_*enT 5 go docker

我想在 docker 容器中运行一个简单的 go 脚本。该脚本有一些标志,如下面的两个示例。

标志:

dataSource := flag.String("input", "", "Path")
...
concurrency := flag.Int("concurrency", 10, "Concurrency")
flag.Parse()
Run Code Online (Sandbox Code Playgroud)

一些标志设置了默认值并且是可选的。其他必须由用户设置。我如何将 docker run 命令中的参数传递给 go 脚本,而无需用户输入所有参数?

Dockerfile:

FROM golang:alpine AS builder
RUN apk update && apk add --no-cache git
WORKDIR $GOPATH/go/src/app
ENV GOBIN=/usr/local/bin
COPY . .
RUN go get github.com/lib/pq
RUN go build -o /go/bin/Import
FROM scratch
COPY --from=builder /go/bin/Import /go/bin/Import
ENTRYPOINT ["/go/bin/Import""]
Run Code Online (Sandbox Code Playgroud)

我已阅读有关ENTRYPOINT的文档,但找不到适合我的任何内容。它甚至可能还是没有意义?

我已经阅读过类似这样的帖子:运行 Docker 映像时传递可选参数。他们只是传递单个参数,我将如何定义这些参数的默认值?

谢谢你的帮助