我正在容器化我的.Net + React.js应用程序,但是在这个过程中我遇到了一个意外的错误。我熟悉了类似的帖子,但是没有一个解决方案能解决我的问题。由于构建日志很长,我在pastebin中放置了:
https://pastebin.com/PhfYW3zm
我正在使用的dockerfile来自官方文档,这就是为什么它来到我作为一个surpise,它不工作:
https://learn.microsoft.com/en-us/visualstudio/containers/container-tools-react?view=vs-2022
停靠文件本身:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get install -y libpng-dev libjpeg-dev curl libxi6 build-essential libgl1-mesa-glx
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get install -y libpng-dev libjpeg-dev curl libxi6 build-essential libgl1-mesa-glx
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs
WORKDIR /src
COPY ["WebApp/WebApp.csproj", "WebApp/"]
RUN dotnet restore "WebApp/WebApp.csproj"
COPY . .
WORKDIR "/src/WebApp"
RUN dotnet build "WebApp.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApp.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApp.dll"]
2条答案
按热度按时间rxztt3cl1#
按照用户PKLeso在此主题https://github.com/dotnet/sdk/issues/9593中的建议从.csproj中删除
npm install
标记解决了问题。如果我没记错的话,这将从你的容器中完全删除前端。但是,如果你想保留它在容器中,只需确保
npm install
在你的前端没有留下任何错误。因为否则会发生MSB3073错误。fdbelqdn2#
如果react应用程序中存在依赖关系冲突(例如,在react to升级到最新版本后,并且由于ClientApp上调用的“npm install”未运行,但“npm install --force”运行,则在.csproj中将“--force”添加到
所以它变成了