Запуск приложения с флагом в Docker - PullRequest
0 голосов
/ 04 мая 2020

Как правильно запустить приложение с любым флагом в Docker?

Я пробовал это:

Dockerfile

# ...
CMD ["-flag_name='value"]
ENTRYPOINT ["./app"]

Но мое приложение go не может видеть этот флаг в main.go:

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

И f всегда равно "default_value".

1 Ответ

1 голос
/ 04 мая 2020

Я думаю, что в вашем случае, может работать только CMD, при условии, что entrypoint полезен, когда вы хотите иметь пользовательский лог c для подготовки контейнера, или если вы хотите передать flag во время выполнения. где вы пытаетесь установить flag в build время.

CMD ["./app","-flag_name=value"]

При предоставлении флага во время выполнения, точка входа может иметь смысл

ENTRYPOINT ["./app"]

затем

docker run -it --rm myapp -flag_name=value

Кстати, комбинация точки входа и CMD также должна работать

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