利用Docker來包裝Dotnet Core的Console程式
目的
寫這篇的文章主要用來教學以及測試一下docker for windows是不是能用 (,,・ω・,,) 內容會很簡單如果會了就不需要看
為什麼要用image來包裝程式呢? 主要是想跨平台不用再重新設定環境,並且立刻就可以用了,我自己的情境大多是有些Linux shell或是command沒辦法在windows執行這時候用docker build成image後再來使用是很方便的一件事。
環境
- 首先我的範例是在windows 10 pro (version 1709)開發的
- 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
詳細內容請參考以下網址
建立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://medium.com/@CarterTsai/利用docker來包裝dotnet-core的console程式-bc322d9e4eb9
同步更新於:https://medium.com/@CarterTsai/利用docker來包裝dotnet-core的console程式-bc322d9e4eb9
留言