ভাল ডকার ওয়েবদেব ওয়ার্কফ্লো কী হবে?


121

আমার একটি কুঁচি আছে যে ডকার আমার ওয়েবদেব কর্মপ্রবাহকে ব্যাপকভাবে উন্নত করতে পারে - তবে আমি কীভাবে কোনও স্ট্যাকের সাথে ডকার যুক্ত করে কোনও প্রকল্পের কাছে যেতে পারি সে সম্পর্কে আমার মাথাটি গুছিয়ে রাখতে খুব একটা পরিচালনা করতে পারি নি।

বেসিক সফ্টওয়্যার স্ট্যাকটি দেখতে এই রকম হবে:

সফটওয়্যার

  • কাস্টম ল্যাম্প স্ট্যাক সরবরাহকারী ডকার চিত্র (গুলি)

    • বেশ কয়েকটি মডিউল সহ অ্যাপাচি
    • জুমলা
    • পিএইচপি
    • কিছু সিএমএস, যেমন সিলভারস্ট্রিপ
  • এলেবেলে

কর্মধারা

আমি নিম্নলিখিত কাজের মতো কিছুটা দেখার জন্য কর্মপ্রবাহটি কল্পনা করতে পারি:

উন্নয়ন

  1. Dockerfileউপরে বর্ণিত প্রয়োজনীয়তা পূরণ করে একটি এলএএমপি-ধারক সংজ্ঞায়িত করে এমন একটি লিখুন
    • REQ: মেশিনটি বুট করার পরে ঠিক অ্যাপাচি / মাইএসকিএল শুরু করা উচিত
  2. ডকার চিত্রটি তৈরি করুন
  3. যেমন সিএমএস চালানোর জন্য প্রয়োজনীয় ফাইলগুলি অনুলিপি করুন ~/dev/cmsdir
    • ~/dev/cmsdir/সংস্করণ নিয়ন্ত্রণে রাখুন
  4. Docker ধারক চালানোর জন্য, এবং একরকম মাউন্ট ~/dev/cmsdirকরার /var/www/ধারক উপর
  5. ডেটাবেস পপুলেট করুন
  6. কাজ করুন /dev/cmsdir/
  7. কমিট করুন এবং ডকার পাত্রে বন্ধ করুন down

বিস্তৃতি

  1. দূরবর্তী হোস্ট সেট আপ করুন (উদাহরণস্বরূপ উত্তরযোগ্য)
  2. রিমোট হোস্টে ধারক ইমেজ পুশ করুন
  3. cmsdirগিটের মাধ্যমে আনুন- প্রকল্প
  4. Docker ধারক চালান, ডাটাবেসের মধ্যে টেনে আনি এবং মাউন্ট cmsdirমধ্যে/var/www

এখন, এটি কাগজে বেশ সুন্দর দেখাচ্ছে, তবে এটি আদৌ সঠিক পন্থা হবে কিনা তা আমি নিশ্চিত নই।

প্রশ্নাবলী:

  1. স্থানীয়ভাবে বিকাশ করার সময়, কনটেইনার উদাহরণটি পুনরায় বুট করার মধ্যে কীভাবে আমি ডাটাবেস পেতে পারি? বা কনটেইনারটি কাটানোর আগে প্রতিবারই কি এসকিএল-ডাম্প চালানো দরকার?

  2. আমার কাছে ডিবি এবং অ্যাপাচি সার্ভারের জন্য পৃথক ধারক উদাহরণ থাকতে হবে? অথবা উপরের ব্যবহারের ক্ষেত্রে একক ধারক থাকা কি যথেষ্ট?

  3. যদি ডেটাবেস এবং সার্ভারের জন্য পৃথক পাত্রে ব্যবহার করা হয়, তবে আমি কীভাবে একই সময়ে তাদের উপরে এবং নিচে ঘুরতে স্বয়ংক্রিয় করতে পারি?

  4. আমি কীভাবে /dev/cmsdir/পাত্রে-ডিরেক্টরিতে মাউন্ট /var/www/করব? এর জন্য আমার কি ডেটা-ভলিউম ব্যবহার করা উচিত?

  5. আমি কি কোনও সমস্যা মিস করেছি? সরল করা যায় যে কিছু?


1
এই প্রশ্নটি বেশ কয়েকজনের কাছে আকর্ষণীয় বলে মনে হচ্ছে। কেউ মনে হয় সম্প্রতি এই বিষয়ে একটি ব্লগপোস্ট সিরিজ লিখেছেন। যেহেতু এটা এখন হিসাবে সম্পন্ন হয় নি, আমি এই মন্তব্যে লিঙ্ক পোস্ট করব: project-webdev.blogspot.de/2015/05/...
jottr

উত্তর:


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

    বিকাশের জন্য - অন্য বিকল্প হ'ল ডেটা ভলিউম ব্যবহার করে আপনার হোস্ট / ডেভলপমেন্ট মেশিন থেকে মাইএসকিএল ডেটা ডিরেক্টরি ম্যাপ করা। আপনি যে কোনও সময় (মাইএসকিএল ধারক শুরুর আগে) মাইএসকিএল (ডকারে) গিট (হোস্টে) ব্যবহার করে এবং "পুনরায় লোড" প্রারম্ভিক স্টেটের মাধ্যমে ডেটা ফাইল পরিচালনা করতে পারেন।

  2. হ্যাঁ, আমি মনে করি আপনার কাছে ডিবির জন্য আলাদা পাত্রে থাকা উচিত।

  3. আমি শুধু বেসিক স্ক্রিপ্ট ব্যবহার করছি:

    #!/bin/bash
    
    $JOB1 = (docker run ... /usr/sbin/mysqld)
    $JOB2 = (docker run ... /usr/sbin/apache2)
    echo MySql=$JOB1, Apache=$JOB2
    
  4. হ্যাঁ, আপনি ডেটা-ভলিউম -v স্যুইচ ব্যবহার করতে পারেন। আমি এটি উন্নয়নের জন্য ব্যবহার করব। আপনি কেবল পঠনযোগ্য মাউন্টিং ব্যবহার করতে পারেন, তাই আপনি চাইলে এই ডিরেক্টরিটিতে কোনও পরিবর্তন করা হবে না (আপনার অ্যাপ্লিকেশনটিকে অন্য কোথাও ডেটা সঞ্চয় করা উচিত) store

    docker run -v=/home/user/dev/cmsdir:/var/www/cmsdir:ro image /usr/sbin/apache2
    

    যাইহোক, চূড়ান্ত স্থাপনার জন্য, আমি ডকফাইফাইল ব্যবহার করে তৈরি এবং চিত্র তৈরি করব ADD /home/user/dev/cmsdir /var/www/cmsdir

  5. আমি জানি না :-)



48
এই প্রক্রিয়াটিতে অবশ্যই আরও টিউটোরিয়াল / সেরা অনুশীলন হওয়া দরকার। :(
রেজা এস

এই টিউটোরিয়ালটি আপনাকে কিছু দিকনির্দেশনা দিতে পারে ..
পিথিকোস

আপনি যদি ডকারের গিথুব থেকে কোড টানছেন তবে এই লিঙ্কটি কেবলমাত্র এসএসএইচ কী (যাতে ডকারের চিত্রটি সর্বজনীনভাবে তালিকাভুক্ত করা যেতে পারে) স্ল্যাশ-
দেব-

4
২০১৫ সাল পর্যন্ত @ রয় ট্রুইলভ, ডুমুর এখন ডকার-রচনা
অ্যালান.সিমন


4

আমি বুঝতে পারি এই পোস্টটি এই মুহুর্তে এক বছরের বেশি পুরানো হয়েছে, তবে আমি সম্প্রতি নিজেকে খুব অনুরূপ প্রশ্ন জিজ্ঞাসা করেছি এবং আপনার প্রশ্নের বেশ কয়েকটি দুর্দান্ত উত্তর রয়েছে।

  1. আপনি একটি মাইএসকিউএল ডকার ইনস্ট্যান্স সেটআপ করতে পারেন এবং স্টেটহীন ডেটা ধারক হিসাবে ডেটা অবিরত রাখতে পারেন, যেমন ডেটা ধারকটিকে সক্রিয়ভাবে চলার দরকার নেই

  2. হ্যাঁ আমি আপনার ওয়েব সার্ভার এবং ডাটাবেসগুলির জন্য একটি পৃথক উদাহরণ থাকার পরামর্শ দিচ্ছি। এটি ডকারের শক্তি।

  3. আমি তৈরি করা এই রেপো দেখুন । মূলত এটি make build& এর মতোই সহজ make runএবং আপনার স্থানীয়ভাবে একটি ওয়েব সার্ভার এবং ডাটাবেস ধারক চলতে পারে।

  4. -vপ্রথমবার কনটেইনারটি চালানোর সময় আপনি যুক্তিটি ব্যবহার করেন , এটি ধারকটি চালিত হোস্টের সাথে ধারকটির একটি নির্দিষ্ট ফোল্ডারে লিঙ্ক করবে।

  5. আমি মনে করি আপনার ধারণাগুলি দুর্দান্ত এবং আপনি যা যা জিজ্ঞাসা করছেন তা অর্জন এখনই সম্ভব।

আপনি তালিকাভুক্ত সমস্ত প্রয়োজনীয়তা অর্জন করার জন্য এখানে একটি টার্ন কী সমাধান রয়েছে


1

আমি একসাথে সহজেই ডকার কম্পোজ সেটআপ ব্যবহার করেছি যা আপনার বিকাশের ওয়ার্কফ্লো প্রয়োজনীয়তার সাথে মেলে।

https://github.com/ehyland/docker-silverstripe-dev

প্রধান বৈশিষ্ট্য

  • অবিরাম ডিবি
  • আপনার পছন্দ HHVM+ + NGINXবা Apache2+ +PHP5
  • XDebug এর সাথে ব্রেকবয়েন্টগুলি ডিবাগ এবং সেট করুন

README.md স্পষ্ট যথেষ্ট আপনি শুরু করতে হবে।

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