c# - 如何在 docker 中加快构建 .net 解决方案
问题描述
我目前的设置:
App.sln
src\
----BaseProject\
-------------Dockerfile
-------------BaseProject.csproj
----ProjectA\
-------------Dockerfile
-------------ProjectA.csproj (references BaseProject)
----ProjectB\
-------------Dockerfile
-------------ProjectB.csproj (references BaseProject)
----ProjectC\
-------------Dockerfile
-------------ProjectC.csproj (references BaseProject)
现在每个项目都有自己的 dockerfile,并且容器是在云端并行构建的。我想知道是否可以重用构建输出来加快构建过程。
我正在使用构建整个解决方案docker compose build --parallel
,并将每个项目发布为单独的容器:
FROM sdk_image as build
RUN dotnet restore
RUN dotnet build --no-restore
RUN dotnet publish --no-build --no-restore -o output
FROM runtime_image as runtime
COPY build/ouput .
RUN dotnet run myapp.dll
我已经尝试过将整个构建缓存在单层中,但显然输出程序集太大了,以至于复制它们比实际编译需要更多时间。
我想知道是否有可能加快这样的构建,也许使用 docker 卷进行 nuget 或构建或类似机制,或者可能从构建输出中删除不必要的文件?
解决方案
推荐阅读
- java - Struts2 jar文件升级后,应用间歇性抛出InvocationTargetException和未知父包null
- apache - 未安装 apache2 时,“localhost”如何给出答案?
- ios - 如何快速修复动画?
- php - 从数据库中获取数据并传递给视图
- android - 带有共享动画的底部操作栏
- c++ - 反复阅读文件的第一行
- button - Vaadin 7 - 将按钮作为生成的属性添加到网格
- c - 删除“if”语句的花括号是否有任何例外?
- android - React-native Android:应用程序在恢复时卡在启动画面上
- c++ - 通知线程是否可以在被通知线程等待锁定之前锁定?