বুটআপে ডকার-কমপোজ কীভাবে চালানো যায়?


20

এটি একটি উবুন্টু 14.04 এলটিএস ভিএম চলছে যা ডকার চালাচ্ছে এবং আমি সন্দেহ করি যে respawnআমার সমস্যার কারণ তবে আদর্শ সমাধান সম্পর্কে নিশ্চিত নন।

বর্তমান আপস্টার্ট স্ক্রিপ্ট ( cat /etc/init/dockersuitecrm.conf)

description "Start docker containers"
author "Batman"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
    docker-compose -f /usr/bin/myapp/docker-compose.yml -p myapp start
end script

এটিতে এই 'কাজ করে' myappজীবিত এবং প্রতিক্রিয়াশীল তবে /sbin/initআমি যখন পর্যবেক্ষণ করি তখন সমস্ত সিপিইউ নেয় htop। আমি যদি আপস্টার্ট ( sudo rm /etc/init/dockersuitecrm.conf) এবং ম্যানুয়ালি এসএসএইচ ইন এবং চালনা থেকে এন্ট্রিটি সরিয়ে ফেলি তবে আমি docker-compose -f /usr/bin/myapp/docker-compose.yml -p myapp startসিপিইউ 100% ইস্যুতে দেখতে পাচ্ছি না এবং আগের মতো myappআবার জীবিত এবং প্রতিক্রিয়াশীল।

সুতরাং আমি সন্দেহ করি যে আমি উপরে ডকার-রচনাটি যেভাবে শুরু করছি তা ভুল। docker-composeম্যানুয়াল হস্তক্ষেপ ছাড়াই সর্বদা চলার সঠিক উপায়টি কী?

সম্পাদনা: /usr/bin/myapp -> /home/batman/dockerapps/myappপ্রতীকী লিঙ্ক হিসাবে গুরুত্বপূর্ণ নয় ।


কোনও সমাধান নয় তবে একটি কাজ হিসাবে, আমি respawnস্ক্রিপ্টের আদেশ ছাড়াই এটি চালাতে সক্ষম ।
ডিপস্পেস 101

একই প্রশ্ন, কিন্তু আমি এটি দেখেছি: serverfault.com/questions/615820/… । যাদুটি ব্যবহারের সাথে রয়েছে docker-compose start
মার্ক লোপেজ

আমার অনুরূপ কনফিগার আছে তবে একটি scriptব্লক ব্যবহার করবেন না । হতে পারে যে সমস্যার অংশ? আমার পরিবর্তে chdir /usr/bin/myapp/এবং পরবর্তী লাইনে আছে exec docker-compose up
jmreicha

আপনি কি পটভূমিতে ডকার-রচনাটি চালাতে চান না? যেমনdocker-compose up -d
কেসিডি

পুনঃসূচনা করুন: সর্বদা ধারক
স্পেসে থাকুন

উত্তর:


9

কেবলমাত্র ক্রন্টব ব্যবহার করুন, সময় বিরতি ব্যবহার করার পরিবর্তে কেবল @reboot বলুন

সুতরাং এই স্ক্রিপ্টটি শুরু করা এবং কমান্ডটি টাইপ করা উচিত এমন ব্যবহারকারী হিসাবে লগইন করুন

crontab -e

এবং তারপরে প্রবেশ করুন

@reboot /better/enter/fullpath/here/docker-compose -f /usr/bin/myapp/docker-compose.yml -p myapp start

সিস্টেমটি পুনরায় বুট করুন এবং দেখুন এটি কার্যকর হয় কিনা। আপস্টার্টের ওপরে একটি সুবিধা রয়েছে, এমনকি এটি একটু পরে শুরু করা হয়েছে, আপনাকে নেটওয়ার্কিং ইত্যাদির মতো নির্ভরতা সম্পর্কে খুব বেশি চিন্তা করতে হবে না ইতিমধ্যে আপ করার জন্য।


কোনও পুনরায় বুটটি এভাবে চালাবেন এমন কোনও ধারণা?
জাস্টিন স্মিথ

1
দুঃখিত, তবে এটি খুব ভাল উত্তর নয়। এটি সময়ে সময়ে কাজ করতে পারে, তবে ক্রোন অন্যান্য ডকারের প্রয়োজনীয়তার আগে লোড হতে পারে, তাই আপনি কোনও রেসের শর্তে চলে যান।
ওথিয়াস

2

ধরে নিই যে আপনি আপনার মধ্যে ডকার রচনা সংজ্ঞাটির 2 সংস্করণ ব্যবহার করছেন docker-compose.yml, আপনি নিম্নলিখিতটি করতে পারেন:

এর restart: alwaysমতো সংজ্ঞা দেওয়া :

version: '2'
services:
  web:
    image: nginx
    restart: always

তথ্যসূত্র: https://docs.docker.com/compose/compose-file/compose-file-v2/


1
প্রশ্নটি হ'ল, কোন ডকারের সাইট উত্তর দেয় না, এটি ছিল: "ডকার-কমপোজ শুরু করার সঠিক উপায়টি সর্বদা ম্যানুয়াল হস্তক্ষেপ ছাড়াই চলছে?"
ওথিয়াস

0

ডকার তাত্ক্ষণিকভাবে প্রস্তুত নয় আপনি যদি খুব দ্রুত স্ক্রিপ্টটি চালান তবে কিছুই হবে না। ডকারটি প্রস্তুত হওয়ার সাথে সাথে ডকার পিএস কমান্ডের প্রতিক্রিয়া শুরু করবে যাতে আপনি এই কৌশলটি ক্রোনটবে ব্যবহার করতে পারেন:

ন্যানো / ইত্যাদি / crontabs / মূল

@ রিবুট / ইউএসআর / বিন / ডকার PS && / usr / বিন / ডকার-কমপোজ -f / প্রোড.আইএমএল শুরু

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