然后在项目右键 添加 =》docker 支持, 会根据当前项目自动生成 dockerfile 文件. 就算没有 ide 的支持, 也可以自己手撸一个 dockerfile 文件, 然后利用 docker 的命令打包, 当然语法和以下是一样的
- FROM mcr.microsoft.com/dotnet/core/runtime:3.0-buster-slim AS base
- WORKDIR /App
- FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
- WORKDIR /src
- COPY ["netcoretest/netcoretest.csproj", "netcoretest/"]
- RUN dotnet restore "netcoretest/netcoretest.csproj"
- COPY . .
- WORKDIR "/src/netcoretest"
- RUN dotnet build "netcoretest.csproj" -c Release -o /App/build
- FROM build AS publish
- RUN dotnet publish "netcoretest.csproj" -c Release -o /App/publish
- FROM base AS final
- WORKDIR /App
- COPY --from=publish /App/publish .
- ENTRYPOINT ["dotnet", "netcoretest.dll"]
然后项目右键 发布 =》容器注册表 =》docker hub 创建发布选项, 会弹出输入 docker hub 账号密码弹窗, 然后输入账号密码, 最后点击发布按钮, 本地必须要安装 docker 哦, 我这里为了演示, 在 Windows 上安装的 docker for Windows. 和以上类似, 就算没有 ide 的支持, 我们一样可以利用 docker 命令把镜像推送到指定仓库. 这里只是演示流程, 所以不要纠结.
如果环境没有错误的话, 发布过程中会弹出黑窗口
发布完成, 在 docker hub 中刷新页面回发现新仓库已经被创建好了
接下来就是在装有 docker 的机器上, 拉取进行并运行容器了, 这里以我本地 Windows 和测试服务器 Linux 为例, 分别演示, 但是其实在两个操作系统中命令是一模一样的
docker run chenhongyu/netcoretest
无论是在 Windows 上还是在 Linux 上, 容器成功被拉取运行
虽然只是一个小小的测试程序, 确把业务程序之外的最大云原生流程撸了一遍, 希望对大家有帮助. 大家可以拉取以下镜像是否可以运行呢?
来源: https://www.cnblogs.com/zhanlang/p/12013424.html