ডকার ইমেজ এন্ট্রিপয়েন্টে যুক্তি যুক্ত না করে চালান


13

আমার সাথে ডকফায়াইল রয়েছে:

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

(না CMD)

আমি যখন চালিত করি উউসগি ঠিকই অভিযোগ করে:

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

এখন, আমি ভেবেছিলাম যে আমি প্রবেশের পয়েন্টে যুক্তির মাধ্যমে যুক্ত করতে পারি docker run:

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

তবে উউসগি এখনও একই ত্রুটির সাথে অভিযোগ করে বলে মনে হয় যে যুক্তিটি সংযোজন করা হয়নি।

আমি যদি এন্ট্রিপয়েন্টটি ওভাররাইড করি তবে আর্গটি যুক্ত হয়:

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

... আমি অবাক হয়েছি যে --iniঅন্যান্য কৌতুকগুলি উপেক্ষা করে যদি উউসগির বিকল্প ছিল তবে এটি এমন নয়:

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

(ঠিক আছে, একটি ত্রুটি, কিন্তু আর্গটি গ্রহণ করা হয়েছে তা দেখায়)

উত্তর:


26

দেখা যাচ্ছে যে কমান্ড লাইন থেকে কাজ করার জন্য ENTRYPOINT(এবং / অথবা CMD) অ্যারে ফর্মটি ব্যবহার করা উত্তরটি রয়েছে

সঙ্গে:

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

তারপর:

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

(ঠিক আছে, একটি ত্রুটি, কিন্তু আর্গটি গ্রহণ করা হয়েছে তা দেখায়)

এই আচরণটি প্রকৃতপক্ষে ডক্সে বর্ণিত:
https://docs.docker.com/references/builder/#entryPoint

... আমি যখন সেগুলি পড়তে গিয়ে স্কিম মিস করেছি তবে :)


কমান্ড লাইনের অ্যারে যুক্তিটি কীভাবে ডকার রান - এন্ট্রিপয়েন্ট ... আইএমএজে পরিবর্তন করব?
ইয়েল ghEEz

আমি মনে করি না রান কমান্ডের জন্য একটি অ্যারে ফর্ম আছে ডকস.ডকার / এঞ্জিন / রেফারেন্স / রুন / maybe সম্ভবত আপনাকে এটিকে উদ্ধৃত করতে হবে যেমনdocker run --entrypoint "uwsgi --ini /home/docker/app/uwsgi_app.ini" <image>
এ্যান্ট্রোপিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.