תרגיל - יצירת קובץ חיבור Docker לתימור

הושלם

חברת ציוד חיצוני Contoso יש שני שירותים שהם רוצים לקבץ יחד כדי לבנות ולפרוס כיחידת יחיד. החברה מחליטה להשתמש ב- Docker Compose כדי לבנות את השירותים יחד.

בתרגיל זה, אתה יוצר קובץ של Docker Compose YAML. לאחר מכן השתמש בכלי השירות Docker Compose כדי לבנות את התמונות של הגורם המכיל של Docker ולהפעיל אותן.

התחברות למרווח הקוד

אם התנתקת ממרווח הקוד שבו השתמשת בתרגיל הקודם, התחבר מחדש כעת:

  1. פתח דפדפן ועבור אל מאגר eShopLite.
  2. בחר קודולאחר מכן בחר את Codespaces זו.
  3. בחר את מרחב הקוד שיצרת בתרגיל הקודם. GitHub פותח את מרחב הקוד.
  4. עבור אל /dotnet-docker שלך.

יצירת קובץ חיבור Docker

השתמש בקובץ docker-compose כדי לקבוע תצורה של תמונות הן עבור השירותים החזיתי והן עבור השירותים החזיתי:

  1. בתיקיה dotnet-docker של מרחב הקוד, פתח את הקובץ בשם ./dotnet-docker/docker-compose.yml. קובץ זה ריק.

  2. הוסף את הקוד הבא לקובץ docker-compose.yml הבא:

    version: '3.4'
    
    services: 
    
        frontend:
            image: store:latest
            environment: 
                - ProductEndpoint=http://backend:8080
            ports:
                - "32000:8080"
            depends_on: 
                - backend
        backend:
            image: products:latest
            ports: 
                - "32001:8080"
    

    קוד זה עושה כמה דברים:

    • הוא יוצר את אתר האינטרנט החזיתי ואת השמות החזיתי.
    • הקוד מגדיר משתנה סביבה עבור אתר האינטרנט: ProductEndpoint=http://backend:8080. קוד זה הוא האופן בו השירות החזיתי מוצא את השירות החזיתי של Products.
    • הקוד פותח יציאה ומצהיר שהיא תלויה בשירות הקצה האחורי.
    • שירות הקצה העורפי בשם העורפי נוצר בשלב הבא.
    • הפקודה האחרונה מציינת איזו יציאה יש לפתוח.
  3. בהשוואה, הקובץ docker-compose.yml היה עליך להשתמש בו אם היו לך קבצים dockerfiles:

    version: '3.4'
    
    services: 
    
        frontend:
            image: storeimage
            build:
                context: .
                dockerfile: ./Store/Dockerfile
            environment: 
               - ProductEndpoint=http://backend:8080
            ports:
               - "32000:8080"
            depends_on: 
               - backend
        backend:
            image: productservice
            build: 
                context: .
                dockerfile: ./Products/Dockerfile
            ports: 
               - "32001:8080"
    

    הקוד כמעט זהה. ההבדל היחיד הוא הצורך בשלבי גירסת ה- Build המצביעים על כל אחד dockerfile.

בניית התמונות והפעלת הגורמים המכילים

כעת, השתמש ב- Docker Compose כדי לבנות ולהתחיל רכיבים חזיתיים ורכיבים בקצה האחורי.

  1. כדי לבנות את תמונות הגורם המכיל עם תמיכה בגורמים מכילים של .NET, בחר המסוף ולאחר מכן הפעל את הפקודה הבאה. שים לב, אם האפליקציה שלך עדיין פועלת, סגור תחילה באמצעות CTRL+C.

    dotnet publish /p:PublishProfile=DefaultContainer
    
  2. כדי להפעיל הן את אתר האינטרנט החזיתי והן את ה- API של האינטרנט הקצה האחורי, הפעל פקודה זו:

    docker compose up
    
  3. חלק מהפלט מופיע ולאחר מכן אתר האינטרנט ו- API של האינטרנט פועלים. אתה אמור לראות פלט דומה לדוגמה זו:

    [+] Running 2/0
        ✔ Container finished-files-backend-1   Created                                                                                   0.0s 
        ✔ Container finished-files-frontend-1  Created                                                                                   0.0s 
    Attaching to backend-1, frontend-1
    ...
    backend-1   | info: Microsoft.Hosting.Lifetime[0]
    backend-1   |       Hosting environment: Production
    backend-1   | info: Microsoft.Hosting.Lifetime[0]
    backend-1   |       Content root path: /app
    

    צילום מסך של כרטיסיית היציאות של מרחב הקוד.

  4. כדי לבדוק את השירות החזיתי, בחר את היציאות החזיתית. לאחר מכן, משמאל לכתובת המקומית של היציאה חזיתית, בחר את סמל הגלובוס. הדפדפן מציג את דף הבית.

  5. בחר מוצרים. הקטלוג מציג את המוצרים של Contoso.

    צילום מסך של מוצרי eSHopLite webshop.