我正在容器化我的 .Net + React.js 应用程序,但在此过程中我遇到了意外错误。我熟悉了类似的帖子,但没有一个解决方案能解决我的问题。由于构建日志很长,我已将其放入 Pastebin 中:
https://pastebin.com/PhfYW3zm https://pastebin.com/PhfYW3zm
我使用的 dockerfile 来自官方文档,这就是为什么我惊讶地发现它不起作用:
https://learn.microsoft.com/en-us/visualstudio/containers/container-tools-react?view=vs-2022 https://learn.microsoft.com/en-us/visualstudio/containers/container-tools-react?view=vs-2022
Dockerfile 本身:
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"]
删除npm install
.csproj 中的标签,如本线程中建议的https://github.com/dotnet/sdk/issues/9593 https://github.com/dotnet/sdk/issues/9593用户 PKLeso 解决了该问题。
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
如果我没记错的话,这将从您的容器中完全删除前端。但是,如果您想将其保留在容器内,请确保npm install
在你的前端不会留下任何错误。因为否则会出现 MSB3073 错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)