Docker Compose સંપૂર્ણ માર્ગદર્શિકા

દરેક સર્વિસ માટે મેન્યુઅલ Docker કમાન્ડ્સ ચલાવવાનું બંધ કરો.

જો તમે આધુનિક એપ્લિકેશન ચલાવતા હોવ, તો તમારી પાસે સંભવતઃ એક frontend, એક backend, એક database અને એક cache હશે. આ દરેકને એક પછી એક ચલાવવું એ ધીમું છે અને ભૂલો થવાની શક્યતા રહે છે.

Docker Compose આ સમસ્યાનું સમાધાન કરે છે. તમે તમારા આખા સ્ટેકને એક YAML ફાઇલમાં વ્યાખ્યાયિત કરી શકો છો અને એક જ કમાન્ડથી બધું શરૂ કરી શકો છો.

પાયાની બાબતો (The Basics)

  • Compose વગર: તમારે ચાર કન્ટેનર માટે ચાર અલગ-અલગ કમાન્ડ ચલાવવા પડે છે.
  • Compose સાથે: તમે "docker compose up" ચલાવો છો અને બધું શરૂ થઈ જાય છે.

મહત્વના ખ્યાલો (Important Concepts)

• Services: દરેક સર્વિસ એક કન્ટેનરનું પ્રતિનિધિત્વ કરે છે. તમે તમારા પોતાના કોડ માટે "build" અથવા PostgreSQL અથવા Redis જેવા પ્રી-બિલ્ટ ટૂલ્સ માટે "image" નો ઉપયોગ કરી શકો છો. • Port Mapping: HOST:CONTAINER ફોર્મેટનો ઉપયોગ કરો. આ તમારા કમ્પ્યુટર પોર્ટને કન્ટેનર પોર્ટ સાથે મેપ કરે છે. • Environment Variables: સાદા મૂલ્યો માટે "environment" અથવા સિક્રેટ્સને અલગ .env ફાઇલમાં રાખવા માટે "env_file" નો ઉપયોગ કરો. • Volumes: તમારા ડેટાને સુરક્ષિત રાખવા માટે volumes નો ઉપયોગ કરો. Volumes વગર, જ્યારે કન્ટેનર બંધ થાય છે ત્યારે તમારો ડેટાબેઝ ડેટા ગાયબ થઈ જાય છે. • Networks: Compose આપમેળે નેટવર્ક બનાવે છે. કન્ટેનર localhost ને બદલે તેમના સર્વિસ નામોનો ઉપયોગ કરીને એકબીજા સાથે વાતચીત કરે છે. • Depends_on: આ સ્ટાર્ટઅપ ક્રમ સેટ કરે છે. તે Docker ને backend પહેલા database શરૂ કરવાનું કહે છે. નોંધ લેશો કે તે ડેટાબેઝ સંપૂર્ણ રીતે તૈયાર થાય ત્યાં સુધી રાહ જોતું નથી.

ઇન્ટરવ્યુ ટિપ્સ (Interview Tips)

  • build વિરુદ્ધ image ક્યારે વાપરવું? તમારા કસ્ટમ એપ્લિકેશન માટે "build" નો ઉપયોગ કરો. Docker Hub પરથી ઉપલબ્ધ ટૂલ્સ માટે "image" નો ઉપયોગ કરો.
  • કન્ટેનર કેવી રીતે વાતચીત કરે છે? તેઓ Docker નેટવર્કની અંદર હોસ્ટનેમ તરીકે સર્વિસ નામોનો ઉપયોગ કરે છે.
  • ડેટા લોસ કેવી રીતે ટાળવો? ડેટાબેઝ માટે હંમેશા named volumes નો ઉપયોગ કરો.
  • સિક્રેટ્સ કેવી રીતે હેન્ડલ કરવા? તેને ક્યારેય હાર્ડકોડ ન કરો. .env ફાઇલનો ઉપયોગ કરો.

ટાળવા જેવી સામાન્ય ભૂલો (Common Mistakes to Avoid)

  • "latest" ટેગનો ઉપયોગ કરવો: આના કારણે અણધાર્યા અપડેટ્સ થઈ શકે છે. "postgres:16" જેવા ચોક્કસ વર્ઝનનો ઉપયોગ કરો.
  • localhost નો ઉપયોગ કરવો: કન્ટેનર localhost દ્વારા એકબીજાને જોઈ શકતા નથી. સર્વિસ નામના ઉપયોગ કરો.
  • Healthchecks નો અભાવ: તમારી સર્વિસ ખરેખર કામ કરવા માટે તૈયાર છે કે નહીં તે મોનિટર કરવા માટે healthchecks નો ઉપયોગ કરો.

સ્ત્રોત: https://dev.to/adityaguptareal/docker-compose-complete-guide-1gac