FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["CodeUin.WebApi/CodeUin.WebApi.csproj", "CodeUin.WebApi/"]
COPY ["CodeUin.Helpers/CodeUin.Helpers.csproj", "CodeUin.Helpers/"]
COPY ["CodeUin.Dapper/CodeUin.Dapper.csproj", "CodeUin.Dapper/"]
RUN dotnet restore "CodeUin.WebApi/CodeUin.WebApi.csproj"
COPY . .
WORKDIR "/src/CodeUin.WebApi"
RUN dotnet build "CodeUin.WebApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "CodeUin.WebApi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "CodeUin.WebApi.dll"]
```
在 Dockerfile 文件的目录下运行打包命令
```cmd
# 在当前文件夹(末尾的句点)中查找 Dockerfile
docker build -t codeuin-api .
# 查看镜像
docker images
# 保存镜像到本地
docker save -o codeuin-api.tar codeuin-api
```
最后,将我们保存的镜像通过上传的服务器后导入即可。
通过 ssh 命令 连接服务器,在刚上传包的目录下执行导入命令。
```cmd
# 加载镜像
docker load -i codeuin-api.tar
# 运行镜像
docker run -itd -p 8888:80 --name codeuin-api codeuin-api
# 查看运行状态
docker stats
```
到此为止,我们整个部署工作已经完成了,最后在请求服务器的接口测试一下是否ok。
![服务器请求](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/676747a5f8394780a3159e63a0428af0~tplv-k3u1fbpfcp-zoom-1.image)
最终的结果也是ok的,到此为止,我们所有基础的工作都完成了。