Giới thiệu
Trong bài viết này, chúng ta sẽ cùng nhau thực hiện đóng gói Docker Compose cho một ứng dụng .NET Core API, có kết hợp sử dụng cơ sở dữ liệu SQL Server.
Mục tiêu
- Viết và hiểu về cấu trúc của tệp tin
compose - Hiểu về các lệnh trong
dockerdocker-compose updocker-compose psdocker-compose down
- Biết cách thao tác với
docker-composetrên hệ điều hìnhUbuntu - Hiểu được cách một ứng dụng
.NET Coređược đóng gói và tạo thànhDocker Image - Hiểu cách
.NET Coretham chiếu ghi đề tệp tinappsettings.jsonkhi khởi động - Sử dụng biến môi trường trong
compose file
Chuẩn bị
- Máy tính cài đặt sẵn
Dockertrên hệ điều hànhUbuntuvà có mạng - Tải về
source codetại git repo: https://github.com/dothiengiang0001/netcore_api - Đọc các nội dung sau trong
source code:- Dockerfile
- config/appsettings.json
Nội dung
1. Tạo compose file
Trong thư mục source code, tạo tệp tin docker-compose-build.yaml (đã có sẵn trong source code) với nội dung sau:
version: '3.8' services: sqlserver: container_name: sqlserver image: mcr.microsoft.com/mssql/server:2019-latest environment: MSSQL_SA_PASSWORD: "1236fG543$" ACCEPT_EULA: "Y" ports: - "1434:1433" volumes: - sql_data:/var/opt/mssql restart: always tedublog-api: container_name: tedublog-api build: context: . dockerfile: ./src/TeduBlog.Api/Dockerfile environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://+:80 - "DatabaseSettings:DefaultConnection=Server=sqlserver;Database=TeduBlog;User Id=sa;Password=1236fG543$;TrustServerCertificate=true" ports: - "8080:80" depends_on: - sqlserver restart: always tedublog-webapp: container_name: tedublog-webapp build: context: . dockerfile: ./src/TeduBlog.WebApp/Dockerfile environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://+:80 - "DatabaseSettings:DefaultConnection=Server=sqlserver;Database=TeduBlog;User Id=sa;Password=1236fG543$;TrustServerCertificate=true" ports: - "8081:80" restart: always depends_on: - sqlserver volumes: sql_data: name: sql_data
2. Thực hiện triển khai compose
docker-compose -f docker-compose-build.yaml up -d --build
3. Kiểm tra kết quả
Kiểm tra image dotnet-api trong docker.
Thực hiện câu lệnh sau để kiểm tra trạng thái của các container trong compose:
docker-compose -f docker-compose-build.yaml ps
Cuối cùng, mở trình duyệt tại địa chỉ:
- API: http://127.0.0.120:8080/swagger/index.html
- Web: http://127.0.0.120:8081
Có thể thiếp lập expose cả hai port ra ngoài trên VirtualBox như sau:
Kiếm tra lại 2 đường dẫn trên trình duyệt chúng ta có kết quả:
Tác giả: Đỗ Thiên Giang
Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.