ASP.NET Web 应用 Docker踩坑历程——续

打印 上一主题 下一主题

主题 897|帖子 897|积分 2691

ASP.NET Web 应用 Docker踩坑历程发表后,也开始使用Docker了,然而发布的过程比较痛苦,经常发生下图的事情:

据说是nuget包还原时发生错误  百度了半天也找不到解决的方法,而发生的概率有相当高,很是无语。
仔细看了自动生成的Dockerfile
  1. FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
  2. WORKDIR /app
  3. EXPOSE 80
  4. EXPOSE 443
  5. FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
  6. WORKDIR /src
  7. COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
  8. RUN dotnet restore "WebApplication1/WebApplication1.csproj"
  9. COPY . .
  10. WORKDIR "/src/WebApplication1"
  11. RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build
  12. FROM build AS publish
  13. RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish /p:UseAppHost=false
  14. FROM base AS final
  15. WORKDIR /app
  16. COPY --from=publish /app/publish .
  17. ENTRYPOINT ["dotnet", "WebApplication1.dll"]
复制代码
大致意思是把源代码复制到本地Docker,然后还原、编译、发布...,于是我在想能不能自己完成发布呢?于是把Dockerfile文件改成如下形式:
  1. FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
  2. WORKDIR /app
  3. EXPOSE 80
  4. EXPOSE 443
  5. COPY  Publish .
  6. ENTRYPOINT ["dotnet", "WebApplication1.dll"]
复制代码
然后在项目文件夹写了个批处理文件Publish.bat
  1. echo off
  2. echo -----------------1.开始发布
  3. dotnet publish -o Publish --os linux
  4. echo -----------------2.生成镜像
  5. docker build -t catzhou2021/test -f Dockerfile .
  6. rd publish /Q/S
  7. echo  -----------------------3.推送镜像
  8. docker push catzhou2021/test
  9. echo -----------------------4.完成
  10. timeout /t 50
  11. echo on
复制代码
嘿嘿,嘿嘿嘿,还真可以。不过存在以后不方便:

  • 发布之前必须手动保存所有文件
  • 必须到项目文件夹双击Publish.bat文件

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表