Hướng dẫn triển khai ASP.NET lên Heroku bằng Docker

Để có thể triển khai lên bạn cần chuẩn bị các chương trình theo hướng dẫn bên dưới. Bài viết này chỉ áp dụng cho trang web ASP.NET đã có sẵn và sẵn sàng triển khai lên Heroku.

Dánh sách các chương trình cần thiết để

Ngoài ra, bạn cần một tài khoản Heroku. Bây giờ bắt đầu đi vào việc chính.

Truy cập vào Heroku, sau khi đăng nhập tiến hành tạo app mới.

Lựa chọn để triển khai ASP.NET lên Heroku bằng cách dùng Docker.

Trước khi thực hiện tiếp, chúng ta sẽ chuyển qua Docker, sau khi đã tải và cài đặt Docker Desktop (và đã đăng nhập). Các bạn tiến thành thực hiện các bước sau:

Mở dự án ASP.NET của bạn, sau đó click chuột phải Project của bạn chọn Add-> Docker Support. Sau đó chọn Linux như hình và nhấn OK.

Sau đó, nó sẽ tạo ra file Docker có dạng như ảnh bên dưới:

Các bạn tiến hành sửa mã trên lại theo dạng sau:

Thay thế {project-name} thành tên dự dán của bạn. Ví dụ dự án của mình tên là HelloWorld thì sẽ là HelloWorld.dll

Tiếp theo các bạn mở thư mục chứa dự án asp.net có chứa tệp .sln trông như thế này:

Các bạn bấm Shirt + chuột phải tại thư mục tại và chọn mở PowerShell.

Sau khi PowerShell đã được mở tại thư mục hiện tại của dự án, bạn tiến hành nhập lệnh sau để build thư mục publish cho project: dotnet publish -c Release

Sau khi hoàn tất, các bạn tìm vào thư mục bin\Release\netcoreapp3.1\publish (tùy vào phiên bản netcore bạn đang dùng)

Bây giờ, tiến hành trở lại thư mục dự án của bạn (chứa tệp .sln) và mở thư mục cùng tên và sao chép tệp Dockerfile đến đường dẫn thư mục publish bên trên.

Tiếp theo, từ PowerShell lúc nãy, các bạn tiến hành login heroku và sau đó chạy dòng lệnh

heroku container:login

Sau khi đăng nhập thành công nó sẽ trả về kết quả như ảnh trên.

Tiếp theo, tiến hành tạo ánh xạ cho dự án của bạn bằng cú pháp sau:



docker build -t "tên app đã tạo trên heroku" "đường dẫn đến thư mục publish"
//Ví dụ: docker build -t "myapp-aspnet" "D:\\HelloWorld\\HelloWorld\\bin\\Release\\netcoreapp3.1\\publish"

Đợi cho nó thực hiện xong lệnh trên, tiến hành nhập lệnh tiếp theo để gán tags:


docker tag "tên app đã tạo ở trên" registry.heroku.com/{ten-app-da-tao-tren-heroku}/web
//Ví dụ: docker tag "myapp-aspnet" registry.heroku.com/myapp-aspnet/web

Sau khi hoàn tất, bạn chạy dòng lệnh sau để tiến hành đẩy web asp.net lên heroku.

heroku container:push web -a "tên app bạn đã tạo trên heroku"
//Ví dụ: heroku container:push web -a "myapp-aspnet"

Bây giờ các bạn tiến hành đợi cho nó push xong, tốc độ push nhanh hay chậm phụ thược vào mạng của bạn.

Bây giờ để trang web có thể chạy được bạn tiến thành chạy thêm dòng lệnh sau để có thể release web.

heroku container:release web -a "tên app của bạn trên heroku"
Ví dụ: heroku container:release web -a myapp-aspnet

Như vậy là đã hoàn tất, tiến hành truy cập vào đường dẫn Heroku app của bạn để check. bài viết đã giúp bạn triển khai ASP.NET lên Heroku. Chúc các bạn thành công!

Bài viết có tham khảo các nguồn sau:

  • Jakub Wajs. 2020. Deploy ASP.NET Core 3.1 Web API to Heroku with Docker – Jakub Wajs. [ONLINE] Available at: https://jakubwajs.wordpress.com/2020/01/31/deploying-asp-net-core-3-1-web-api-to-heroku-with-docker/. [Accessed 25 May 2021] .
  • YouTube. 2018. Deploy Asp.Net Core Website on Heroku using Docker – YouTube. [ONLINE] Available at: https://www.youtube.com/watch?v=gQMT4al2Grg. [Accessed 25 May 2021] .
Bình luận Facebook