docker - 如何从 docker 映射 .NET 应用程序的更改并重建?
问题描述
我目前正在开发一个NET Application
并且我必须运行以下 bash 脚本:
1.
Build
项目2.
dotnet publish -c Release
项目3.
copy
把publish
文件夹放到一个路径Dockerfile
上。
这可以直接从dockerfile
?
我现在正在运行的内容:
Bash 脚本
dotnet build ../${serverSrcFolder} &&
dotnet publish -c Release ../${serverSrcFolder} --output $(pwd)/${serverPublishDestFolder}
Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY . /app
ENTRYPOINT [ "dotnet" , "./publish/Server.dll" ]
EXPOSE 9400
EXPOSE 6379
该publish
文件夹位于dockerfile
.
- 父文件夹
- Dockerfile
- 发布
serverPublishDestFolder
上面的脚本bash
就是这个publish
文件夹。
publish
每当文件夹从内部更改时,我可以以某种方式始终映射文件夹dockerfile
吗?
解决方案
您可以在内部执行上述三个步骤Dockerfile
例如
ROM microsoft/dotnet:2.1.5-aspnetcore-runtime AS base
WORKDIR /app
ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000
FROM microsoft/dotnet:2.1.403-sdk AS build
WORKDIR /src
COPY src/WebApi/WebApi.csproj src/WebApi/
RUN dotnet restore src/WebApi/WebApi.csproj
COPY . .
WORKDIR /src/src/WebApi
RUN dotnet build WebApi.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish WebApi.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApi.dll"]
这Dockerfile
可以通过Visual Studio 2017轻松生成
推荐阅读
- c# - HttpWebRequest 远程服务器返回错误:(401) Unauthorized
- sql - 为什么我得到一个超出范围的值:下溢以及如何解决它?
- r - 有没有办法在 R 中的最后一个索引处重新启动 for 循环?
- database - Oracle - ORA-38101:合并时的 INSERT VALUES 子句中的列无效
- python - 如何调试由第三方应用程序启动的 python 脚本
- java - 为 Fragment 实现 RecyclerView 适配器的问题
- sql - 特殊情况需要计数记录
- python - 如何在 python 2.7 中从枚举中导入 auto?
- python - cv2.error: OpenCV(4.0.0): ...(-215:Assertion failed)... ONNXImporter::getLayerParams'
- python - 即使文本框超出范围,也强制执行 xlim 和 xbound