DotNetCore跨平臺~Dockerfile的解釋
大叔感覺網上對Dockerfile的(de)說(shuo)明不(bu)是很清(qing)(qing)楚,或者說(shuo)怎(zen)么去(qu)用(yong)說(shuo)的(de)不(bu)清(qing)(qing)楚,在vs2017里我們可以去(qu)建立(li)自己的(de)Dockerfile文件(jian),然后你的(de)項(xiang)目(mu)可以被生成一個(ge)鏡像,把它推(tui)到倉庫之后,你可以在linux,mac上去(qu)run你的(de)項(xiang)目(mu)了!聽著很爽(shuang),但過程確實(shi)有些坑(keng)!
Dockerfile里的解答
- From 基礎依賴鏡像
- ARG 輸入一個參數,這里指你Dockerfile所在的目錄
- EXPOSE 對外開放的端口
- COPY ${source:-bin/publish} ./hello 把source所在的目錄下的,bin/publish子目錄的內容復制到容器的hello目錄
- WORKDIR hello 把當前容器目前改為hello目錄
- ENTRYPOINT ["dotnet", "dockerMvc.dll"] 運行donet命令,參數是dockerMvc.dll
在(zai)命令行里執行docker build
首先(xian)使用(yong)cd把當前目錄(lu)定在項目目錄(lu),如(ru)E:\GitHub\dotnet\dockerMvc\dockerMvc

然后輸入docker build "bin\Release\PublishOutput" ,注意這個參數是指你Dockerfile所有的(de)目錄,并且(qie)它是相對于當(dang)前來說(shuo)的(de),所有(you)目(mu)錄層(ceng)次關系要搞清楚,而你要程序目(mu)錄可能(neng)是這(zhe)個目(mu)錄下(xia)面的(de)bin/publish目(mu)錄.

最后,我們的(de)images就被(bei)成功建立了docker images

其(qi)時(shi),最(zui)初,大叔認為docker build在(zai)執行時(shi),必須把當前目錄(lu)定在(zai)Dockerfile所有目錄(lu),經過今天的測試才知道,你完(wan)全可以把它(ta)重新指(zhi)定,它(ta)與當前上當無關,只(zhi)是build的一(yi)個(ge)參數而(er)以。