Asp.Net Core Blazor之容器部署

山治先生發表於2020-07-05

寫在前面

  Docker作為開源的應用容器引擎,可以讓我們很輕鬆的構建一個輕量級、易移植的容器,通過Docker方式進行持續交付、測試和部署,都是極為方便的,並且對於我們開發來說,最直觀的優點還是解決了日常開發中的環境配置與部署環境配置上的差異所帶來的種種疑難雜症,從此推脫產品的措辭也少了——“我電腦正常啊!”。總之,Docker伴隨著“真香定理”的存在。

以windows10下安裝Ubuntu子系統為例

1. 1 在微軟應用商店安裝Ubuntu

 

1.2 啟動並設定密碼

 

另外,如果想要安裝影像介面,就自行百度吧,這裡就不安裝了,真男人都是直接擼命令列的。

Ubuntu下安裝Docker

命令彙總:

//https://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] https://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] https://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)公眾號釋出

相關文章