天天看點

在阿裡雲上運作ASP.NET Docker應用

微軟的.net開源後可以運作在mac和linux平台,也支援運作在docker容器裡。我們今天要嘗試的是在mac上開發一個.net應用,并且把它用docker跑起來,然後部署到阿裡雲容器服務上。

在mac上安裝.net core需要先安裝openssl。

使用dotnet指令行可以建立.net helloworld程式。<code>dotnet restore</code>是将所有依賴資訊恢複出來。

運作新生成的程式

不願意自己敲字的同學可以從這裡複制代碼:

<a href="https://code.aliyun.com/libin.libin/dotnet-helloworld">https://code.aliyun.com/libin.libin/dotnet-helloworld</a>

啟動浏覽器通路<code>http://localhost:5000</code>可以看到輸出了:

在阿裡雲上運作ASP.NET Docker應用

首先看看例子目錄下都有哪些檔案:

dockerfile用來生成docker鏡像,内容如下:

基礎鏡像為微軟的官方鏡像,另外<code>bin/debug/netcoreapp1.0/publish/</code>由<code>dotnet publish</code>指令生成。要生成docker鏡像需要執行如下指令:

上傳到阿裡雲容器hub,記得先在其中的<code>&lt;name&gt;</code>替換成自己的名字。

本地運作docker應用的指令如下:

如果你按照官方文檔,會發現應用僅偵聽localhost,造成浏覽器通路不了。可以在代碼中指定應用偵聽所有位址。

還記得例子目錄下有個<code>docker-compose.yml</code>檔案嗎?

把上面内容中<code>&lt;name&gt;</code>替換為自己的名字,在叢集裡建立應用時,選擇<code>使用編排模版建立</code>:

在阿裡雲上運作ASP.NET Docker應用

在模版編輯器中粘貼docker-compose.yml檔案内容,然後點選<code>建立并部署</code>:

在阿裡雲上運作ASP.NET Docker應用

應用建立成功後進入服務頁面,發現服務的通路端點已經自動生成了:

在阿裡雲上運作ASP.NET Docker應用

點選<code>通路端點</code>,啟動浏覽器可以看到asp.net的輸出了:

在阿裡雲上運作ASP.NET Docker應用