如何使用一个 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