Docker run Não anexando argumentos à entrada de imagem

Eu tenho um Dockerfile com:

ENTRYPOINT ["uwsgi", "--ini /home/docker/app/uwsgi_app.ini"]

(nao CMD)

Quando Eu corro que uWSGI reclama com razão:

uWSGI running as root, you can use --uid/--gid/--chroot options*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***

Agora, pensei que poderia anexar argumentos ao ponto de entrada via docker run comer:

$ docker run -itP uwsgi_app:0.1 --uid=docker

No entanto uwsgi ainda reclama com o mesmo erro, parece que o arg não foi anexado.

Se eu substituir o ponto de entrada, o arg será adicionado:

$ docker run -itP --entrypoint bash uwsgi_app:0.1 --uid=dockerbash: --uid=docker: invalid option

... Eu me perguntei se era do uwsgi --ini opção ignorando outros args, mas não é isso:

$ docker run -itP --entrypoint bash uwsgi_app:0.1[ root@88941de25b1f:/home/docker ]$ uwsgi --ini /home/docker/app/uwsgi_app.ini --uid=dockeruser docker not found.

(Ok, um erro, mas mostra que o arg foi aceito)

Acontece que a resposta é usar a forma de matriz de ENTRYPOINT (e / ou CMD) para anexar da linha de comando ao trabalho

com:

ENTRYPOINT ["uwsgi", "--ini", "/home/docker/app/uwsgi_app.ini"]

entao:

$ docker run -itP uwsgi_app:0.2 --uid=docker...user docker not found.

(Ok, um erro, mas mostra que o arg foi aceito)

Esse comportamento é realmente descrito nos documentos:
https://docs.docker.com/reference/builder/#entrypoint

...Eu senti falta disso ao lê-los:)