Asp.Net Core Blazor之容器部署
?
寫(xiě)在前面
Docker作為開(kāi)源的應(yīng)用容器引擎,可以讓我們很輕松的構(gòu)建一個(gè)輕量級(jí)、易移植的容器,通過(guò)Docker方式進(jìn)行持續(xù)交付、測(cè)試和部署,都是極為方便的,并且對(duì)于我們開(kāi)發(fā)來(lái)說(shuō),最直觀的優(yōu)點(diǎn)還是解決了日常開(kāi)發(fā)中的環(huán)境配置與部署環(huán)境配置上的差異所帶來(lái)的種種疑難雜癥,從此推脫產(chǎn)品的措辭也少了——“我電腦正常啊!”。總之,Docker伴隨著“真香定理”的存在。?
以windows10下安裝Ubuntu子系統(tǒng)為例
1. 1 在微軟應(yīng)用商店安裝Ubuntu
1.2 啟動(dòng)并設(shè)置密碼
另外,如果想要安裝圖像界面,就自行百度吧,這里就不安裝了,真男人都是直接擼命令行的。
Ubuntu下安裝Docker
命令匯總:
2.1 移除apt官方舊的docker版本
sudo apt-get remove docker docker-engine docker-ce docker.io2.2 更新apt
sudo apt-get update2.3 配置apt可以通過(guò)HTTPS使用拉取鏡像
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common2.4 設(shè)置Docker官方的GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -2.5 添加stable存儲(chǔ)庫(kù)
sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"2.6 安裝docker-ce社區(qū)版
sudo apt-get install docker-ce2.7 啟動(dòng)docker?
sudo service docker start2.8 結(jié)束了嗎?還沒(méi),查看docker運(yùn)行狀態(tài)
sudo service docker status然后使用以下命令查看docker版本,會(huì)發(fā)現(xiàn)只有Client,沒(méi)有server。所以這個(gè)就是在windows下的子系統(tǒng)的特殊性。需要額外下載?Docker for windows,作為Docker的服務(wù)端。
docker version2.9 安裝并運(yùn)行 Docker for windows
安裝完成后,會(huì)自動(dòng)重啟電腦,所以你熬夜寫(xiě)的代碼要記得先保存。重啟之后,再設(shè)置即可。
2.9.1 配置及刷新環(huán)境變量
echo "export DOCKER_HOST='tcp://0.0.0.0:2375'" >> ~/.bashrc source ~/.bashrc在這端口為什么是2375,注意看上面的docker for windows的配置,再次查看版本:
終于安裝好docker。
發(fā)布Blazor
3.0 ?因?yàn)锽lazor WebAssembly App暫未支持docker,所以新建一個(gè)Blazor Server項(xiàng)目
3.1 添加docker文件
3.2 選擇Linux并修改Dockerfile文件
# 使用運(yùn)行時(shí)鏡像 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base # 設(shè)置工作目錄 WORKDIR /app # 把目錄下的內(nèi)容都復(fù)制到當(dāng)前目錄下 COPY . . # 運(yùn)行鏡像入口命令和可執(zhí)行文件名稱(chēng) ENTRYPOINT ["dotnet", "BlazorApp.dll"]3.3 發(fā)布(此過(guò)程有點(diǎn)久)
?發(fā)布至Docker
在windows10子系統(tǒng)中,我們無(wú)需像獨(dú)立的Linux需將文件拷貝至Linux系統(tǒng)中,通過(guò)以下命令查看到磁盤(pán)情況,會(huì)發(fā)現(xiàn)其實(shí)已經(jīng)幫我們掛載好了,無(wú)需復(fù)制拷貝發(fā)布的文件,又是真香。
df -h4.1 直接cd進(jìn)入發(fā)布路徑
4.2 構(gòu)建鏡像
docker build -t blazorapp .注意,不能用大寫(xiě),這里提示必須用小寫(xiě)來(lái)命名,并且有一個(gè)【.】在結(jié)尾。
?4.3 創(chuàng)建容器
docker run -d -p 8072:80 blazorapp說(shuō)明:容器暴露80端口,并指定宿主機(jī)8072端口與其通信(宿主機(jī)端口:容器暴露端口)。
?4.4 查看當(dāng)前鏡像
docker image lsNginx請(qǐng)忽略,是后面才安裝的。
完成發(fā)布
docker發(fā)布到私有倉(cāng)庫(kù)
發(fā)布到私有倉(cāng)庫(kù),這里用docker Hub做示例,首先在docker Hub 上注冊(cè)好賬號(hào),然后進(jìn)行推送。
6.1 打上標(biāo)記
docker tag blazorapp liohuang/blazorapp如未登錄,會(huì)提示先登錄賬戶(hù)。
6.2 推送至倉(cāng)庫(kù)
docker push liohuang/blazorapp下次使用的時(shí)候使用pull命令拉取即可。
總結(jié)
以上是生活随笔為你收集整理的Asp.Net Core Blazor之容器部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: .Net Core 2.2升级3.1的避
- 下一篇: 将终结点图添加到你的ASP.NET Co