আমার কাছে ডকার একটি এডাব্লুএস ইসি 2 ইভেন্টে চলছে (ইলাস্টিক বিয়ানস্টালক)। আমি ইন্টারেক্টিভ কন্টেইনারে ব্যাশ চালানোর জন্য চাই স্বয়ংক্রিয়ভাবে একটি স্ক্রিপ্ট আমি সব কমান্ড প্রত্যেক সময় টাইপ মাধ্যমে যাওয়া ছাড়া আমার শেল থেকে চালানো হয়।
রেজেক্সের ভিত্তিতে স্বতন্ত্র যুক্তিগুলি মুদ্রণ সম্পর্কে একটি সুপারভাইজার উত্তর ব্যবহার করে এটি তৈরি করেছি। আমি যদি টাইপ বা এডাব্লুএস-এ লগ ইন করার সময় এটি আটকে দিই তবে এটি ঠিক আছে।
sudo docker exec -it $(sudo docker ps | awk '{for(i=1;i<=NF;i++){if($i~/ecs-awseb-mything-.*/){print $i}}}') bash
এটি আমার এসএসএইচ সংযোগ "স্ক্রিপ্ট":
#!/usr/bin/env bash
ssh -i /path/to/my.pem awsuser@myhost
আমি উভয়কে ssh -t ব্যবহার করে কোনও উপকারের সাথে একত্রিত করার চেষ্টা করেছি:
#!/usr/bin/env bash
ssh -i /path/to/my.pem awsuser@myhost -t "sudo docker exec -it $(sudo docker ps | awk '{for(i=1;i<=NF;i++){if($i~/ecs-awseb-mything-.*/){print $i}}}') bash"
তবে ভাগ্য নেই। কনসোল সেশনের প্রতিলিপিটি এখানে:
myuser@MYCOMPUTER:~$ ./myscript.sh
sudo: unable to resolve host MYCOMPUTER
[sudo] password for myuser:
myuser@MYCOMPUTER:~$
দেখে মনে হচ্ছে এটি কমান্ডটি কার্যকর করার চেষ্টা করছে এবং তারপরে সংযোগ স্থাপন করবে? সুতরাং আমি এটি এটিকে পরিবর্তন করেছিলাম:
#!/usr/bin/env bash
ssh -i /path/to/my.pem -t "sudo docker exec -it $(sudo docker ps | awk '{for(i=1;i<=NF;i++){if($i~/ecs-awseb-mything-.*/){print $i}}}') bash" awsuser@myhost
এখনও ঠিক একই সমস্যা। সাহায্যের জন্য ধন্যবাদ!