কেন আমি ডকার রান দিয়ে কোনও ডিরেক্টরিতে সিডি করতে পারি না?


39

আমার একটি নির্দিষ্ট ডিরেক্টরি থেকে একটি অ্যাপ্লিকেশন চালানো দরকার।

$ 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

আমি পুরো পথটি নির্দিষ্ট করে দিয়ে আমার প্রোগ্রামটি চালাতে পারি, তবে এটি বর্তমান ডিরেক্টরি থেকে চালু হওয়ার প্রত্যাশা অনুযায়ী এটি ক্র্যাশ হয়ে যায়। আমি কি করতে পারি?

উত্তর:


34

আপনার কমান্ডটি এইভাবে / বিন / শকে যুক্তি হিসাবে পাস করুন:

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

ডকার রান সেন্টস / বিন / শ-সি 'সিডি / বিন; / বিন / এলএস 'কিছুই মুদ্রণ করে না, যখন ডকার রান সেন্টোস / বিন / শ-সি' / বিন / এলএস / বিন 'কাজ করে।
seanmcl

আসলে উভয় কমান্ডই / বিন ডিরেক্টরিতে ফাইলগুলির তালিকা আউটপুট দেয়। দুজনকেই চেষ্টা করেছেন।
গ্লিয়ুন

আমার বাক্সে নেই, সেন্টোস 7।
seanmcl

1
প্রকৃতপক্ষে, এমনকি আমার কমান্ডটি চালানোর জন্য প্রায়শই উদ্ধৃতিগুলি সরিয়ে ফেলা ভাল কাজ করেছে। আমি মনে করি ডকার এটিকে /bin/sh -cযাইহোক জড়িয়ে দেয় ।
schmmd

85

আপনি -wআপনার কাজের ডিরেক্টরি পরিবর্তন করতে বিকল্পটি ব্যবহার করতে পারেন ।

docker run

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

সুতরাং, আপনার ক্ষেত্রে, আপনি চালাতে চাই:

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

আমি ব্যবহার গেল -wসঙ্গে docker exec? আমি আমার ধারকটিতে পাইথন স্ক্রিপ্ট চালানোর কোনও উপায় খুঁজছি, তবে এটি ধারকটির বাইরে থামাতে পারছি না।
zx1986

ওহ, আমি উত্তর পেয়েছি ....flag provided but not defined: -w
zx1986

1
দম্মিত কেন ডকার রান রেফারেন্স পৃষ্ঠার নীচে এই সমস্ত পথ লুকিয়ে রেখেছে ! :-)
আমির আবির

5
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত
fferri

4

কার্যকরী ডিরেক্টরি সেট করতে আপনার ডকফেরলে WORKDIR ব্যবহার করুন। তারপরে আপনি আপনার কমান্ডটি এক্সেক দিয়ে চালাতে পারেন।


0

অনুমতি ইস্যুর কারণে এটি আমার হতে পারে বা উদাহরণটি এক্সিকিউটেবল উপলভ্য পাথটি সন্ধান করতে সক্ষম হয় না। এটি পরীক্ষা করতে এক্সিকিউটেবলের সহজলভ্য অবস্থানটি পথে যুক্ত করার চেষ্টা করুন এবং স্ক্রিপ্টটি চালানোর চেষ্টা করুন

পথে বর্তমান ডিরেক্টরি যুক্ত করতে দয়া করে নীচের কমান্ডটি ব্যবহার করুন

$ export PATH=$PATH:
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.