תרגיל - יצירת קובץ חיבור Docker לתימור
חברת ציוד חיצוני Contoso יש שני שירותים שהם רוצים לקבץ יחד כדי לבנות ולפרוס כיחידת יחיד. החברה מחליטה להשתמש ב- Docker Compose כדי לבנות את השירותים יחד.
בתרגיל זה, אתה יוצר קובץ של Docker Compose YAML. לאחר מכן השתמש בכלי השירות Docker Compose כדי לבנות את התמונות של הגורם המכיל של Docker ולהפעיל אותן.
התחברות למרווח הקוד
אם התנתקת ממרווח הקוד שבו השתמשת בתרגיל הקודם, התחבר מחדש כעת:
- פתח דפדפן ועבור אל מאגר eShopLite.
- בחר קודולאחר מכן בחר את Codespaces זו.
- בחר את מרחב הקוד שיצרת בתרגיל הקודם. GitHub פותח את מרחב הקוד.
- עבור אל /dotnet-docker שלך.
יצירת קובץ חיבור Docker
השתמש בקובץ docker-compose כדי לקבוע תצורה של תמונות הן עבור השירותים החזיתי והן עבור השירותים החזיתי:
בתיקיה dotnet-docker של מרחב הקוד, פתח את הקובץ בשם ./dotnet-docker/docker-compose.yml. קובץ זה ריק.
הוסף את הקוד הבא לקובץ 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. - הקוד פותח יציאה ומצהיר שהיא תלויה בשירות הקצה האחורי.
- שירות הקצה העורפי בשם העורפי נוצר בשלב הבא.
- הפקודה האחרונה מציינת איזו יציאה יש לפתוח.
בהשוואה, הקובץ 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 כדי לבנות ולהתחיל רכיבים חזיתיים ורכיבים בקצה האחורי.
כדי לבנות את תמונות הגורם המכיל עם תמיכה בגורמים מכילים של .NET, בחר המסוף ולאחר מכן הפעל את הפקודה הבאה. שים לב, אם האפליקציה שלך עדיין פועלת, סגור תחילה באמצעות CTRL+C.
dotnet publish /p:PublishProfile=DefaultContainerכדי להפעיל הן את אתר האינטרנט החזיתי והן את ה- API של האינטרנט הקצה האחורי, הפעל פקודה זו:
docker compose upחלק מהפלט מופיע ולאחר מכן אתר האינטרנט ו- 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כדי לבדוק את השירות החזיתי, בחר את היציאות החזיתית. לאחר מכן, משמאל לכתובת המקומית של היציאה חזיתית, בחר את סמל הגלובוס. הדפדפן מציג את דף הבית.
בחר מוצרים. הקטלוג מציג את המוצרים של Contoso.