利用Docker來包裝Dotnet Core的Console程式

CarterTsai
4 min readFeb 17, 2018

--

目的

寫這篇的文章主要用來教學以及測試一下docker for windows是不是能用 (,,・ω・,,) 內容會很簡單如果會了就不需要看

為什麼要用image來包裝程式呢? 主要是想跨平台不用再重新設定環境,並且立刻就可以用了,我自己的情境大多是有些Linux shell或是command沒辦法在windows執行這時候用docker build成image後再來使用是很方便的一件事。

環境

  1. 首先我的範例是在windows 10 pro (version 1709)開發的
  2. dotnet core runtimme 2.0.5跟dotnet core sdk 2.1.4的環境

Docker的版本是docker for windows 17.12.0-ce-win47

目錄

程式

1. 使用dotnet的指令來建立基本的console程式

$ dotnet new console -n app

並且將Program.cs內容改成以下

2. 建立Dockerfile

這邊要注意的是不需要用設定ENTRYPOINT,主要就只是將build好的執行檔放進image就好

P.S. Docker的新功能Multi-stage builds還真方便,不用像以前要寫好多個Dockerfile

詳細內容請參考以下網址

https://docs.docker.com/develop/develop-images/multistage-build/

建立Image

不知道為什麼windows的images都異常的肥大就像是過年吃了好幾天的大餐然後都不去減肥一樣。不知道microsoft什麼時候才可以將image減肥一下 ಠ_ಠ

有點離題了當你執行了ocker build之後,你就會看到你的Repository裡面就有剛剛建立的image

$ docker build -t carter/app:latest .

$ docker images

執行

最後在Powershell執行Command

$ docker run -it carter/app:latest dotnet app.dll 123

就能看到剛剛寫的小程式可以執行了

(ノ>ω<)ノ

最後如果每次都要打這麼多一定會受不了,我們可以用別名(Alias)來讓指令更簡單。但是在windows要寫太多….有點懶不想寫 XDD 可以參考一下別人的寫法

https://gist.github.com/pythoninthegrass/62ab08e13ed9ae264f4816ee5fc85aec

同步更新於:https://hamisme.blogspot.tw/2018/02/dockerdotnet-coreconsole.html

--

--

No responses yet