Docker, resim giriş noktasına bağımsız değişken eklemiyor


13

İle bir Dockerfile var:

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

(hayır CMD)

Ben o uwsgi haklı olarak çalıştırdığınızda:

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

Şimdi, giriş noktasına argümanları şöyle ekleyebileceğimi düşündüm docker run:

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

Uwsgi hala aynı hatayla şikayetçi olsa da, arg eklenmemiş gibi görünüyor.

Giriş noktasını geçersiz kılarsam arg eklenir:

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

... uwsgi'nin --inidiğer argümanları görmezden gelme seçeneği olup olmadığını merak ettim , ama bu değil:

$ 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.

(tamam, bir hata, ancak bağımsız değişkenin kabul edildiğini gösterir)

Yanıtlar:


26

Cevap, komut satırından işe eklemek için ENTRYPOINT(ve / veya CMD) dizi formunu kullanmak olduğu ortaya çıkıyor

ile:

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

sonra:

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

(tamam, bir hata, ancak bağımsız değişkenin kabul edildiğini gösterir)

Bu davranış aslında dokümanlarda açıklanmaktadır:
https://docs.docker.com/reference/builder/#entrypoint

... ama onları okuduktan sonra kaçırdım :)


Komut satırındaki dizi bağımsız değişkenini docker run --entrypoint ... IMAGE olarak nasıl değiştirebilirim?
eel ghEEz

Çalıştır komutunun bir dizi formu olduğunu sanmıyorum docs.docker.com/engine/reference/run/… belki alıntı yapmalısınız örneğindocker run --entrypoint "uwsgi --ini /home/docker/app/uwsgi_app.ini" <image>
Anentropic
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.