আমি বেশ কিছু টিউটোরিয়াল দেখেছি যা দেখে মনে হচ্ছে একই কাজটি করার চেষ্টা করছি তবে কিছু কারণে আমার ডকারের ধারকগুলি প্রস্থান করছে। মূলত, আমি একটি ডকার পাত্রে একটি ওয়েব-সার্ভার এবং কয়েকটি ডিমন স্থাপন করছি setting আমি এর চূড়ান্ত অংশগুলি ব্যাশ স্ক্রিপ্টের run-all.shমাধ্যমে করি যেটি আমি আমার ডকফিলিতে সিএমডি দিয়ে চালাচ্ছি। run-all.shএটা এমন দেখতে:
service supervisor start
service nginx start
এবং আমি এটিকে আমার ডকফাইফিলের ভিতরে এটি শুরু করি:
CMD ["sh", "/root/credentialize_and_run.sh"]
আমি দেখতে পাচ্ছি যে আমি যখন ম্যানুয়ালি জিনিসগুলি চালিত করি তখন পরিষেবাগুলি সমস্ত সঠিকভাবে শুরু হয় (যেমন -i -t / বিন / ব্যাশ দিয়ে চিত্রটিতে চলেছি), এবং চিত্রটি চালানোর সময় সমস্ত কিছু সঠিকভাবে চলেছে বলে মনে হয়, তবে এটি একবারে উপস্থিত হয় এটি আমার প্রক্রিয়া শুরু করে শেষ করে। আমি প্রক্রিয়াগুলি অনির্দিষ্টকালের জন্য চলতে চাই এবং যতদূর আমি বুঝতে পারি, এটি হওয়ার জন্য ধারকটি চালিয়ে যেতে হবে। তবুও, যখন আমি দৌড়ে যাই, docker ps -aআমি দেখতে পাই:
➜ docker_test docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7706edc4189 some_name/some_repo:blah "sh /root/run-all.sh 8 minutes ago Exited (0) 8 minutes ago grave_jones
কি দেয়? কেন বাইরে বের হচ্ছে? আমি জানি যে আমি এটি চালিয়ে যাওয়ার জন্য আমার বাশ স্ক্রিপ্টের শেষে কিছুক্ষণ লুপ রাখতে পারি, তবে এটিটি বেরিয়ে আসার সঠিক উপায় কী?