Docker ke Sath Laravel Project Kaise Deploy Karein

Docker ke Sath Laravel Project Kaise Deploy Karein

यदि आप लारवेल प्रोजेक्ट (Laravel Project) बनाकर उसे आसानी से डिप्लॉय करना चाहते हैं, तो डॉकर (Docker) एक शानदार टूल है। डॉकर एक कंटेनराइज़ेशन प्लेटफॉर्म है, जो आपके प्रोजेक्ट, उसकी डिपेंडेंसीज़ (Dependencies), और सर्वर सेटअप को एक पोर्टेबल पैकेज में बाँध देता है। इस डॉकर लारवेल डिप्लॉय इन हिंदी (Docker Laravel Deploy in Hindi) ट्यूटोरियल में हम आपको स्टेप-बाय-स्टेप बताएँगे कि लारवेल प्रोजेक्ट को ड

Table of contents [Show]

परिचय: डॉकर के साथ लारवेल डिप्लॉय क्यों? (Why Deploy Laravel with Docker?)

यदि आप लारवेल प्रोजेक्ट (Laravel Project) बनाकर उसे आसानी से डिप्लॉय करना चाहते हैं, तो डॉकर (Docker) एक शानदार टूल है। डॉकर एक कंटेनराइज़ेशन प्लेटफॉर्म है, जो आपके प्रोजेक्ट, उसकी डिपेंडेंसीज़ (Dependencies), और सर्वर सेटअप को एक पोर्टेबल पैकेज में बाँध देता है। इस डॉकर लारवेल डिप्लॉय इन हिंदी (Docker Laravel Deploy in Hindi) ट्यूटोरियल में हम आपको स्टेप-बाय-स्टेप बताएँगे कि लारवेल प्रोजेक्ट को डॉकर के साथ कैसे सेटअप और डिप्लॉय करते हैं। यह गाइड शुरुआती लोगों (Beginners) के लिए बहुत आसान है। तो, आइए शुरू करें! 🚀

 

डॉकर के फायदे (Benefits of Docker for Laravel)

डॉकर को लारवेल के साथ उपयोग करने की लोकप्रियता के कुछ कारण यहाँ हैं:

  • पोर्टेबिलिटी (Portability): एक बार कंटेनर बनाएँ, और उसे कहीं भी चलाएँ—लोकल, सर्वर, या क्लाउड पर।
  • कॉन्सिस्टेंसी (Consistency): डेवलपमेंट और प्रोडक्शन एनवायरनमेंट एक जैसे रहते हैं।
  • आसान सेटअप (Easy Setup): PHP, MySQL, और Nginx जैसी डिपेंडेंसीज़ मिनटों में सेट करें।
  • स्केलेबिलिटी (Scalability): मल्टीपल कंटेनर्स से बड़े प्रोजेक्ट्स आसानी से मैनेज करें।
  • कम्युनिटी सपोर्ट (Community Support): Docker Hub पर ढेर सारे रेडीमेड इमेजेस उपलब्ध हैं।

जानकारी (Fact): 2025 में 80% डेवलपर्स प्रोडक्शन डिप्लॉयमेंट के लिए Docker का उपयोग करते हैं!

डॉकर और लारवेल से क्या कर सकते हैं? (What Can You Do with Docker and Laravel?)

डॉकर के साथ आप कई प्रकार के लारवेल प्रोजेक्ट्स डिप्लॉय कर सकते हैं, जैसे:

  • ब्लॉग (Blog): कस्टम ब्लॉग सिस्टम।
  • ई-कॉमर्स (E-commerce): प्रोडक्ट लिस्टिंग और कार्ट सिस्टम।
  • API सिस्टम (API System): RESTful APIs।
  • टू-डू ऐप (To-Do App): डायनामिक टास्क मैनेजमेंट।

डॉकर के साथ लारवेल डिप्लॉय करने की स्टेप-बाय-स्टेप गाइड (Step-by-Step Guide)

स्टेप 1: Docker और Laravel प्रोजेक्ट तैयार करें (Prepare Docker and Laravel Project)

सबसे पहले, निम्नलिखित चीज़ें तैयार रखें:

  • Docker: Docker Desktop इंस्टॉल करें। Docker वेबसाइट से डाउनलोड करें।
  • PHP: वर्जन 8.1 या उससे ऊपर।
  • कंपोजर (Composer): PHP पैकेज मैनेजर।
  • Laravel प्रोजेक्ट: एक बेसिक प्रोजेक्ट।

कैसे सेट करें?

  1. नया Laravel प्रोजेक्ट बनाएँ:
composer create-project laravel/laravel laravel-docker-app
  1. Docker Desktop इंस्टॉल करें और चलाएँ।
  2. टर्मिनल में Docker की स्थापना चेक करें:
docker --version
docker-compose --version

 

स्टेप 2: Dockerfile बनाएँ (Create Dockerfile)

Dockerfile में Laravel प्रोजेक्ट की डिपेंडेंसीज़ डिफाइन करें।

  1. प्रोजेक्ट रूट में Dockerfile बनाएँ और निम्नलिखित कोड जोड़ें:
FROM php:8.1-fpm
# Install system dependencies
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip
# Install PHP extensions
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Set working directory
WORKDIR /var/www
# Copy project files
COPY . .
# Install Laravel dependencies
RUN composer install
# Set permissions
RUN chown -R www-data:www-data /var/www
RUN chmod -R 755 /var/www/storage
# Expose port
EXPOSE 9000
CMD ["php-fpm"]

स्टेप 3: Docker Compose सेटअप करें (Setup Docker Compose)

मल्टीपल सर्विसेज (PHP, MySQL, Nginx) के लिए Docker Compose का उपयोग करें।

  1. प्रोजेक्ट रूट में docker-compose.yml बनाएँ और निम्नलिखित कोड जोड़ें:
version: '3.8'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: laravel-app
    container_name: laravel_app
    restart: unless-stopped
    working_dir: /var/www
    volumes:
      - .:/var/www
    networks:
      - laravel
  db:
    image: mysql:8.0
    container_name: laravel_db
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: laravel_docker_db
      MYSQL_ROOT_PASSWORD: root
      MYSQL_PASSWORD: root
      MYSQL_USER: laravel
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - laravel
  nginx:
    image: nginx:alpine
    container_name: laravel_nginx
    restart: unless-stopped
    ports:
      - "8000:80"
    volumes:
      - .:/var/www
      - ./nginx:/etc/nginx/conf.d
    networks:
      - laravel
networks:
  laravel:
    driver: bridge
volumes:
  dbdata:

स्टेप 4: Nginx कॉन्फिगरेशन सेट करें (Setup Nginx Configuration)

Nginx के लिए कॉन्फिगरेशन फाइल बनाएँ।

  1. nginx फोल्डर बनाएँ और उसमें default.conf फाइल बनाकर निम्नलिखित कोड जोड़ें:
server {
    listen 80;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/public;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

स्टेप 5: .env फाइल कॉन्फिगर करें (Configure .env File)

Laravel की .env फाइल में डेटाबेस सेटिंग्स अपडेट करें:

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel_docker_db
DB_USERNAME=laravel
DB_PASSWORD=root

स्टेप 6: Docker कंटेनर्स रन करें (Run Docker Containers)

प्रोजेक्ट को Docker में रन करें।

  1. टर्मिनल में प्रोजेक्ट फोल्डर में जाएँ और निम्नलिखित कमांड चलाएँ:
docker-compose up -d --build

यह PHP, MySQL, और Nginx कंटेनर्स बनाएगा।

  1. ब्राउज़र में http://localhost:8000 खोलें। Laravel का वेलकम पेज दिखेगा।

 

स्टेप 7: Laravel प्रोजेक्ट टेस्ट करें (Test Laravel Project)

प्रोजेक्ट को टेस्ट करने के लिए:

  1. Artisan कमांड्स चलाएँ:
docker-compose exec app php artisan key:generate
docker-compose exec app php artisan migrate
  1. सैंपल रूट टेस्ट करें। routes/web.php में टेस्ट रूट जोड़ें:
Route::get('/test', function () {
    return 'Hello, Docker!';
});

ब्राउज़र में http://localhost:8000/test खोलें।

स्टेप 8: प्रोडक्शन डिप्लॉयमेंट (Production Deployment)

प्रोजेक्ट को प्रोडक्शन में डिप्लॉय करें।

  1. क्लाउड प्रोवाइडर: AWS, DigitalOcean, या Hostinger चुनें।
  2. Docker Hub पर इमेज पुश करें:
docker tag laravel-app your-dockerhub-username/laravel-app
docker push your-dockerhub-username/laravel-app
  1. सर्वर पर docker-compose.yml कॉपी करें और चलाएँ:
docker-compose up -d

 

डॉकर और लारवेल टिप्स (Tips for Docker and Laravel)

  • ऑप्टिमाइज़ेशन (Optimization): Dockerfile में मल्टी-स्टेज बिल्ड्स का उपयोग करें।
  • सुरक्षा (Security): .env फाइल को Git में कमिट न करें।
  • लॉगिंग (Logging): Docker लॉग्स चेक करें (docker logs laravel_app)।
  • डॉक्यूमेंटेशन (Documentation): Docker और Laravel डॉक्स पढ़ें।

अक्सर पूछे जाने वाले सवाल (FAQs)

1. डॉकर लारवेल के लिए क्यों उपयोग करें? (Why Use Docker for Laravel?)

डॉकर से डिपेंडेंसीज़ मैनेज करना और डिप्लॉयमेंट आसान हो जाता है। **(HQ)**

2. क्या डॉकर शुरुआती लोगों के लिए आसान है? (Is Docker Easy for Beginners?)

हाँ, इस docker laravel deploy in hindi गाइड के साथ शुरुआती लोग आसानी से सीख सकते हैं। **(HQ)**

3. डॉकर में लारवेल डिप्लॉय करने में कितना समय लगता है? (How Long to Deploy Laravel with Docker?)

इस गाइड को फॉलो करके 1-2 घंटे। प्रोडक्शन सेटअप में 1 दिन लग सकता है। **(HQ)**

4. क्या मैं AWS पर डिप्लॉय कर सकता हूँ? (Can I Deploy on AWS?)

हाँ, ECS या EKS के साथ Docker कंटेनर्स AWS पर चलाए जा सकते हैं।

5. लारवेल प्रोजेक्ट को ऑनलाइन कैसे लाएँ? (How to Launch Laravel Project Online?)

Hostinger पर प्रोजेक्ट अपलोड करें।

निष्कर्ष: आज ही डॉकर के साथ डिप्लॉय करें! (Deploy with Docker Today!)

इस डॉकर लारवेल डिप्लॉय इन हिंदी (Docker Laravel Deploy in Hindi) ट्यूटोरियल के माध्यम से आपने सीखा कि डॉकर के साथ लारवेल प्रोजेक्ट कैसे डिप्लॉय किया जाता है। Dockerfile, Docker Compose, और प्रोडक्शन डिप्लॉयमेंट के साथ आपका प्रोजेक्ट मिनटों में ऑनलाइन हो सकता है। इस गाइड को फॉलो करें और अपने प्रोजेक्ट्स शुरू करें। यदि आपके कोई सवाल हैं, तो नीचे कमेंट करें। अपनी वेबसाइट को Hostinger पर होस्ट करें और इसे ऑनलाइन ले जाएँ।

अगला क्या सीखें? (What to Learn Next?) Kubernetes, CI/CD, या Vue.js जैसे टॉपिक्स पर ट्यूटोरियल्स हिंदी में (Tutorials in Hindi) चाहिए? InHindi24.com पर और गाइड्स पढ़ें!

Munna Patel

हाय, मैं एक फुल स्टैक डेवलपर (Full Stack Developer) हूँ, जिसके पास 7 साल का अनुभव (7 Years of Experience) है। मेरा जुनून है वेब डेवलपमेंट (Web Development) और कोडिंग (Coding) को आसान (Easy) और मजेदार बनाना, खासकर हिंदी भाषी ऑडियंस के लिए। मैं InHindi24.com पर हिंदी में टेक ट्यूटोरियल्स (Tech Tutorials in Hindi) शेयर करता हूँ, जिसमें लारवेल (Laravel), HTML, CSS, JavaScript, Python, और बहुत कुछ