Docker run não anexando argumentos ao ponto de entrada da imagem

11

Eu tenho um Dockerfile com:

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

(sem CMD )

Quando corro, o 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, eu pensei que eu poderia acrescentar argumentos ao ponto de entrada via docker run da seguinte forma:

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

No entanto uwsgi ainda se queixa com o mesmo erro, parece que o arg não foi acrescentado.

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

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

... Eu queria saber se era a opção --ini do uwsgi ignorando outros argumentos, 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=docker
user docker not found.

(ok, um erro, mas mostra que o argumento foi aceito)

    
por Anentropic 28.11.2014 / 14:11

1 resposta

22

Acontece que a resposta é usar o formulário 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"]

então:

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

(ok, um erro, mas mostra que o argumento foi aceito)

Esse comportamento é realmente descrito nos documentos: link

... eu senti falta disso quando os li, embora:)

    
por 28.11.2014 / 14:49

Tags