Asp.Net Core Blazor之容器部署
寫在前面
Docker作為開源的應用容器引擎,可以讓我們很輕鬆的構建一個輕量級、易移植的容器,通過Docker方式進行持續交付、測試和部署,都是極為方便的,並且對於我們開發來說,最直觀的優點還是解決了日常開發中的環境配置與部署環境配置上的差異所帶來的種種疑難雜症,從此推脫產品的措辭也少了——「我電腦正常啊!」。總之,Docker伴隨著「真香定理」的存在。
以windows10下安裝Ubuntu子系統為例
1. 1 在微軟應用商店安裝Ubuntu
1.2 啟動並設置密碼
另外,如果想要安裝影像介面,就自行百度吧,這裡就不安裝了,真男人都是直接擼命令行的。
Ubuntu下安裝Docker
命令匯總:
////www.cnblogs.com/EminemJK/p/13188444.html
sudo apt-get remove docker docker-engine docker-ce docker.io sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] //download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" apt-cache madison docker-ce sudo apt-get install docker-ce sudo service docker start
2.1 移除apt官方舊的docker版本
sudo apt-get remove docker docker-engine docker-ce docker.io
2.2 更新apt
sudo apt-get update
2.3 配置apt可以通過HTTPS使用拉取鏡像
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
2.4 設置Docker官方的GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2.5 添加stable存儲庫
sudo add-apt-repository \ "deb [arch=amd64] //download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
2.6 安裝docker-ce社區版
sudo apt-get install docker-ce
2.7 啟動docker
sudo service docker start
2.8 結束了嗎?還沒,查看docker運行狀態
sudo service docker status
然後使用以下命令查看docker版本,會發現只有Client,沒有server。所以這個就是在windows下的子系統的特殊性。需要額外下載 Docker for windows,作為Docker的服務端。
docker version
2.9 安裝並運行 Docker for windows
安裝完成後,會自動重啟電腦,所以你熬夜寫的程式碼要記得先保存。重啟之後,再設置即可。
2.9.1 配置及刷新環境變數
echo "export DOCKER_HOST='tcp://0.0.0.0:2375'" >> ~/.bashrc source ~/.bashrc
在這埠為什麼是2375,注意看上面的docker for windows的配置,再次查看版本
終於安裝好docker。
發布Blazor
3.0 因為Blazor WebAssembly App暫未支援docker,所以新建一個Blazor Server項目
3.1 添加docker文件
3.2 選擇Linux並修改Dockerfile文件
# 使用運行時鏡像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
# 設置工作目錄
WORKDIR /app
# 把目錄下的內容都複製到當前目錄下
COPY . .
# 運行鏡像入口命令和可執行文件名稱
ENTRYPOINT ["dotnet", "BlazorApp.dll"]
3.3 發布(此過程有點久)
發布至Docker
在windows10子系統中,我們無需像獨立的Linux需將文件拷貝至Linux系統中,通過以下命令查看到磁碟情況,會發現其實已經幫我們掛載好了,無需複製拷貝發布的文件,又是真香。
df -h
4.1 直接cd進入發布路徑
4.2 構建鏡像
docker build -t blazorapp .
注意,不能用大寫,這裡提示必須用小寫來命名,並且有一個【.】在結尾
4.3 創建容器
docker run -d -p 8072:80 blazorapp
說明:容器暴露80埠,並指定宿主機8072埠與其通訊(宿主機埠:容器暴露埠)。
4.4 查看當前鏡像
docker image ls
Nginx請忽略,是後面我才安裝的。
完成發布
docker發布到私有倉庫
發布到私有倉庫,這裡用docker Hub做示例,首先在docker Hub 上註冊好帳號,然後進行推送。
6.1 打上標記
docker tag blazorapp liohuang/blazorapp
如未登錄,會提示先登錄賬戶。
6.2 推送至倉庫
docker push liohuang/blazorapp
下次使用的時候使用pull命令拉取即可。
本文已獨家授權給DotNetGeek(ID:dotNetGeek)公眾號發布