如何使用一个 Dockerfile 处理多个项目?
How can I work with multibleproject with one Dockerfile?
我的问题是关于如何在多个项目中使用Dockerfile。
当您查看 src 目录时,您会看到所有项目结构:
C:\src\test\src\XXXX.Web下的XXXX.Web.csproj
你能给我一个建议吗?
我的 Dockerfile :
FROM mcr.microsoft.com/dotnet/sdk:5.0 as build-image
WORKDIR /.
#COPY ["XXXX.sln", "./"]
COPY ./*/*.csproj ./
RUN for file in $(ls *.csproj); do mkdir -p ./${file%.*}/ && mv $file ./${file%.*}/; done
RUN dotnet restore
COPY . .
RUN dotnet publish ./XXXX.Web/XXXX.Web.csproj -o /publish/
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /publish
COPY --from=build-image /publish .
ENV ASPNETCORE_URLS="http://0.0.0.0:80"
ENTRYPOINT ["dotnet", "XXXX.Web.dll"]
我的.dockerignore:
node_modules
npm-debug.log
Dockerfile*
docker-compose*
.dockerignore
.git
.gitignore
.env
*/bin
*/obj
README.md
LICENSE
.vscode
请告诉我生成“MSBUILD:错误 MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。”的 Dockerfile 中有什么问题。为什么?我愿意接受任何建议吗?
您必须注意在 docker 文件中执行 dotnet restore
的位置。您缺少项目或解决方案位置。
dotnet restore <path>/<name>.csproj
我的问题是关于如何在多个项目中使用Dockerfile。
当您查看 src 目录时,您会看到所有项目结构:
C:\src\test\src\XXXX.Web下的XXXX.Web.csproj
你能给我一个建议吗?
我的 Dockerfile :
FROM mcr.microsoft.com/dotnet/sdk:5.0 as build-image
WORKDIR /.
#COPY ["XXXX.sln", "./"]
COPY ./*/*.csproj ./
RUN for file in $(ls *.csproj); do mkdir -p ./${file%.*}/ && mv $file ./${file%.*}/; done
RUN dotnet restore
COPY . .
RUN dotnet publish ./XXXX.Web/XXXX.Web.csproj -o /publish/
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /publish
COPY --from=build-image /publish .
ENV ASPNETCORE_URLS="http://0.0.0.0:80"
ENTRYPOINT ["dotnet", "XXXX.Web.dll"]
我的.dockerignore:
node_modules
npm-debug.log
Dockerfile*
docker-compose*
.dockerignore
.git
.gitignore
.env
*/bin
*/obj
README.md
LICENSE
.vscode
请告诉我生成“MSBUILD:错误 MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。”的 Dockerfile 中有什么问题。为什么?我愿意接受任何建议吗?
您必须注意在 docker 文件中执行 dotnet restore
的位置。您缺少项目或解决方案位置。
dotnet restore <path>/<name>.csproj