برنامه نویسی

ساختمان و خودکار سازی استقرار یک برنامه Flask با Docker ، Github و CI/CD

مقدمه

این پروژه نحوه ساخت ، کانتینر کردن و استقرار یک برنامه ساده فلاسک را با Docker ، با استفاده از GitHub برای کنترل نسخه و اقدامات GitHub برای ادغام مداوم/استقرار مداوم (CI/CD) نشان می دهد. شما یاد خواهید گرفت که چگونه:

  • یک برنامه وب ساده فلاسک ایجاد کنید.
  • برنامه را با استفاده از Docker Containerize کنید.
  • کنترل نسخه را با Git و GitHub تنظیم کنید.
  • خطوط لوله CI/CD را با استفاده از اقدامات GitHub برای ساخت و استقرار تصویر Docker پیاده سازی کنید.

⚙ پیش نیازها

قبل از شروع ، اطمینان حاصل کنید که ابزارهای زیر را نصب کرده اید:

  • پیتون: یک زبان برنامه نویسی برای ساخت برنامه های وب.
  • فلاسک: یک چارچوب وب سبک وزن پایتون.
  • اسکله: سکویی برای توسعه ، حمل و نقل و اجرای برنامه ها در ظروف.
  • گودال: یک سیستم کنترل نسخه برای ردیابی تغییرات در کد.
  • لوب: بستری برای میزبانی و اشتراک مخازن کد.
  • قطب: یک رجیستری مبتنی بر ابر برای به اشتراک گذاشتن تصاویر Docker.

اگر این موارد را نصب نکرده اید ، برای دستورالعمل های نصب به وب سایت های رسمی مربوطه مراجعه کنید.


✅ مرحله 1: یک برنامه فلاسک ساده ایجاد کنید

  1. یک پوشه جدید برای پروژه ایجاد کنید:

    mkdir flask-devops-app
    cd flask-devops-app
    

مكدیر

  1. یک محیط مجازی Python را تنظیم کنید:

    python -m venv venv
    
  2. محیط مجازی را فعال کنید:

    source venv/Scripts/activate  # On Windows use: venv\Scripts\activate
    
  3. فلاسک را نصب کنید:

    pip install flask
    

مبهم کردن

  1. ایجاد app.py پرونده:

    # app.py
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')
    def hello():
        return "Hello DevOps!"
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    

پرونده

  1. برنامه را به صورت محلی اجرا کنید:

    python app.py
    
  2. بازدید http://localhost:5000 در مرورگر خود شما باید ببینید "Hello DevOps!"بشر

سلام devops

✅ مرحله 2: برنامه را کانتینر کنید

  1. ایجاد a Dockerfile در همان پوشه:

    # Dockerfile
    FROM python:3.9-slim
    
    WORKDIR /app
    
    COPY requirements.txt requirements.txt
    RUN pip install -r requirements.txt
    
    COPY . .
    
    CMD ["python", "app.py"]
    
    

داک

  1. تولید کردن requirements.txt:

    pip freeze > requirements.txt
    
  2. ایجاد a .dockerignore پرونده:

    __pycache__/
    *.pyc
    venv/
    
  3. تصویر Docker را بسازید:

    docker build -t flask-devops-app .
    

داک

  1. ظرف Docker را اجرا کنید:

    docker run -p 5000:5000 flask-devops-app
    
  2. باز http://localhost:5000 دوباره و دیدن برنامه خود در داخل یک ظرف Docker.

داکر در حال اجرا

✅ مرحله 3: تنظیم کنترل نسخه

ابزار: git + github

  1. یک مخزن git را آغاز کنید:

    git init
    
  2. ایجاد a .gitignore پرونده:

    venv/
    __pycache__/
    *.pyc
    
  3. پرونده های خود را مرتکب شوید:

    git add .
    git commit -m "Initial commit"
    
  4. یک مخزن GitHub ایجاد کرده و آن را به repo محلی خود پیوند دهید:

    git remote add origin https://github.com/YOUR_USERNAME/flask-devops-app.git
    git branch -M main
    git push -u origin main
    

Git Remote Add

✅ مرحله 4: CI/CD را با اقدامات GitHub پیاده سازی کنید

ابزارها: اقدامات GitHub ، Docker Hub

  1. ایجاد a .github/workflows/docker-publish.yml پرونده:

    mkdir -p .github/workflows
    touch .github/workflows/docker-publish.yml
    
  2. ویرایش docker-publish.yml پرونده و محتوای زیر را اضافه کنید:

    # .github/workflows/docker-publish.yml
    name: Build and Push Docker Image
    
    on:
      push:
        branches: [ main ]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout code
            uses: actions/checkout@v3
    
          - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v2
    
          - name: Log in to Docker Hub
            uses: docker/login-action@v2
            with:
              username: ${{ secrets.DOCKER_USERNAME }}
              password: ${{ secrets.DOCKER_PASSWORD }}
    
          - name: Build and push image
            uses: docker/build-push-action@v5
            with:
              context: .
              push: true
              tags: YOUR_DOCKERHUB_USERNAME/flask-devops-app:latest
    

YML

  1. اعتبار Docker Hub را به عنوان اسرار GitHub اضافه کنید:

    • به مخزن GitHub خود بروید تنظیماتاسرار و متغیرهااقدامات
    • اسرار زیر را اضافه کنید:
      • DOCKER_USERNAME نام کاربری Hub Docker Hub شما
      • DOCKER_PASSWORD → رمز عبور Docker Hub یا نشانه دسترسی

اعتبار

  1. دوباره کد خود را فشار دهید:

    git add .
    git commit -m "Add CI/CD workflow"
    git push
    

اقدامات GitHub اکنون به طور خودکار تصویر Docker شما را می سازد و هر زمان که به آن فشار می آورید ، آن را به Docker Hub سوق می دهد main شاخه


نتیجه نهایی

محرک

  • ✅ یک برنامه فلاسک زنده که در داخل یک ظرف Docker اجرا می شود.
  • code کد منبع در GitHub میزبان است.
  • ✅ تصویر Docker به طور خودکار ساخته می شود و در هر تعهد به Docker Hub رانده می شود.

🎯 نتیجه گیری

تبریک می گویم! شما با موفقیت یک برنامه Flask ساده ایجاد کرده اید ، آن را با Docker Contained ، کنترل نسخه با Git و Github ، و CI/CD را با اقدامات GitHub پیاده سازی کرده اید. این پروژه یک گام اساسی در ساخت سیستم های مقیاس پذیر و خودکار در DevOps است.


عیب یابی

  • اگر داکر در حال اجرا نیست: اطمینان حاصل کنید که دسک تاپ Docker باز و در حال اجرا است.
  • اگر با اقدامات GitHub با مشکلات مجوز روبرو شدید: اعتبارنامه Docker Hub خود را در اسرار Github بررسی کنید.
  • اگر برنامه فلاسک بارگیری نشود: اطمینان حاصل کنید که از درگاه صحیح استفاده می کنید و ظرف Docker در حال اجرا است. نیازها!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا