使用Docker中的标志运行应用程序

使用Docker中的标志运行应用程序,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,使用Docker中的任何标志运行应用程序的正确方法是什么 我试过这个: Dockerfile # ... CMD ["-flag_name='value"] ENTRYPOINT ["./app"] 但我的go应用程序无法在main.go中看到该标志: f := flag.String("flag_name", "default_value", "") 而f始终等于的“默认值”我认为在您的情况下,只有CMD可以工作,当您需要一些自定义逻辑来准备容器时,或者当您想在运行时传递标志时,提供ent

使用Docker中的任何标志运行应用程序的正确方法是什么

我试过这个:

Dockerfile

# ...
CMD ["-flag_name='value"]
ENTRYPOINT ["./app"]
但我的go应用程序无法在
main.go中看到该标志:

f := flag.String("flag_name", "default_value", "")

f
始终等于
的“默认值”

我认为在您的情况下,只有
CMD
可以工作,当您需要一些自定义逻辑来准备容器时,或者当您想在运行时传递
标志时,提供
entrypoint
非常有用,您试图在
build
时间设置
标志的位置

CMD ["./app","-flag_name=value"]
虽然在运行时提供标志,但entrypoint还是有意义的

ENTRYPOINT ["./app"]
然后

顺便说一句,entrypoint和CMD的组合也应该起作用

entrypoint ["/app/hello"]
CMD ["-word=value"]
entrypoint ["/app/hello"]
CMD ["-word=value"]