DotNetCore跨平台~Dockerfile的解释
大叔感觉网上对Dockerfile的说明不是很清楚,或者说怎么去用说的不清楚,在vs2017里我们可以去建立自己的Dockerfile文件,然后你的项目可以被生成一个镜像,把它推到仓库之后,你可以在linux,mac上去run你的项目了!听着很爽,但过程确实有些坑!
Dockerfile里的解答
- From 基础依赖镜像
- ARG 输入一个参数,这里指你Dockerfile所在的目录
- EXPOSE 对外开放的端口
- COPY ${source:-bin/publish} ./hello 把source所在的目录下的,bin/publish子目录的内容复制到容器的hello目录
- WORKDIR hello 把当前容器目前改为hello目录
- ENTRYPOINT ["dotnet", "dockerMvc.dll"] 运行donet命令,参数是dockerMvc.dll
在命令行里执行docker build
首先使用cd把当前目录定在项目目录,如E:\GitHub\dotnet\dockerMvc\dockerMvc
然后输入docker build "bin\Release\PublishOutput" ,注意这个参数是指你Dockerfile所有的目录,并且它是相对于当前来说的,所有目录层次关系要搞清楚,而你要程序目录可能是这个目录下面的bin/publish目录.
最后,我们的images就被成功建立了docker images
其时,最初,大叔认为docker build在执行时,必须把当前目录定在Dockerfile所有目录,经过今天的测试才知道,你完全可以把它重新指定,它与当前上当无关,只是build的一个参数而以。