我有一个asp.net核心应用程序,在构建时它的wwwroot文件夹内没有任何内容,但是在docker build期间,我有一个阶段编译我的Angular应用程序,然后在以后的阶段将编译后的文件复制到wwwroot文件夹中。当应用程序启动时,我的目录浏览不存在。我可以运行读取目录并查看文件的代码,所以我在这里做错了什么?
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM node:10.15-alpine as webbuild
COPY ["ShareWeb/Angular", "ShareWeb/web"]
WORKDIR /ShareWeb/web
RUN npm install
RUN npm install -g @angular/cli
RUN npm install -g sass
RUN npm rebuild node-sass
RUN ng build --prod
FROM microsoft/dotnet:2.2-sdk AS hostbuild
WORKDIR /src
COPY ["ShareWeb/ShareWeb.csproj", "ShareWeb/"]
RUN dotnet restore "ShareWeb/ShareWeb.csproj"
COPY . .
WORKDIR "/src/ShareWeb"
COPY --from=webbuild ShareWeb/web/dist wwwroot/ # Copies my files in
RUN dotnet build "ShareWeb.csproj" -c Release -o /app
FROM hostbuild AS publish
RUN dotnet publish "ShareWeb.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
RUN rm -r Angular
ENTRYPOINT ["dotnet", "ShareWeb.dll"]
答案 0 :(得分:0)
在这一行:
COPY --from = webbuild ShareWeb / web / dist wwwroot /#复制我的文件
尝试:以/ShareWeb/web/dist
作为路径,而不是ShareWeb/web/dist