لماذا لا يمكنني سد إلى دليل مع عامل الميناء تشغيل?

أحتاج إلى تشغيل تطبيق من دليل معين.

$ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory

هذا الدليل موجود بالتأكيد ، وإذا كنت الاتصال عامل الميناء عن طريق تشغيل باش بشكل تفاعلي يمكنني تشغيل الأمر أعلاه.

$ sudo docker run -i -t ubuntu/decomposer /bin/bash# cd /local/deploy/decomposer; ./decomposer-4-15-2014

يمكنني تشغيل برنامجي عن طريق تحديد المسار الكامل ، ولكن بعد ذلك يتعطل كما يتوقع أن يتم إطلاقه من الدليل الحالي. ماذا يمكنني أن أفعل?

يمكنك استخدام -w الخيار لتغيير دليل العمل الخاص بك.

docker run  -w, --workdir=""           Working directory inside the container

لذلك ، في حالتك ، كنت تشغيل:

sudo docker run -w /local/deploy/decomposer -P ubuntu/decomposer ./decomposer-4-15-2014

تمرير الأمر الخاص كحجة ل / بن / ش مثل هذا:

sudo docker run -P ubuntu/decomposer /bin/sh -c 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'

استخدام وركدير في دوكيرفيل الخاص بك لتعيين دليل العمل. ثم يمكنك تشغيل الأمر الخاص بك مع إكسيك.

قد يكون هذا بسبب مشكلة الإذن أو أن المثيل غير قادر على العثور على المسار القابل للتنفيذ المتاح. للتحقق من ذلك ، حاول إضافة الموقع القابل للتنفيذ المتاح في المسار وحاول تشغيل البرنامج النصي

لإضافة الدليل الحالي في المسار ، يرجى استخدام الأمر أدناه

$ export PATH=$PATH:

لدي مثال مماثل من هذا الموقع https://djangostars.com/blog/what-is-docker-and-how-to-use-it-with-python/#header13:

docker run -d --name "test-nginx" -p 8080:80 -v $(pwd):/usr/share/nginx/html:ro nginx:latest

لا يعمل هذا الأمر على بوابة باش ويندوز.

كان الحل هو استخدام cd بدلا من $(pwd):

docker run -d --name "test-nginx" -p 8080:80 -v cd:/usr/share/nginx/html:ro nginx:latest