Docker 部署 .NET Core 3.0 控制台项目
本文将光速创建一个 HelloWorld,然后使用 Docker 进行部署
新建并发布.NET Core 控制台项目
首先新建一个.NET Core 控制台项目,并直接运行
控制台应该会输出“Hello World!”,如果没有可以自己写一个。
$ dotnet new console --name hello
$ cd hello
$ dotnet run
解释:
dotnet new 用于创建新项目,console 表示是控制台项目,--name 指定项目名称为 hello 并在当前路径下创建 hello 文件夹,而项目在其中。
于是直接发布
$ dotnet publish -c Release
解释:该命令会把项目发布到 hello 文件夹中的 bin/Release/netcoreapp3.0/publish 里
然后在 hello 目录下编写 Dockerfile 文件用于生成镜像
Dockerfile
FROM mcr.microsoft.com/dotnet/core/runtime
COPY bin/Release/netcoreapp3.0/publish/ /publish
WORKDIR /publish
ENTRYPOINT ["dotnet", "hello.dll"]
解释:
FROM
表示我们的镜像基于 dotnet core runtime
COPY
用于拷贝我们打包好的应用,这里第一个参数的路径应该替换为应用的发布路径
WORKDIR
用于切换当前工作路径
ENTRYPOINT
运行应用
接下来利用这个 Dockerfile 构建镜像
$ docker build -t dotnet-hello .
解释:dotnet-hello 是镜像的名称
最后利用该镜像构建容器并运行
$ docker run -t --name hello dotnet-hello
解释:
-t 表示虚拟终端,用于在 Docker 命令行工具中输出应用的控制台输出。但一般项目中不需要
--name hello 表示容器名为 hello
最后看到终端输出“Hello World!”
12 December 2019