.Net core Angular app running in a Docker Windows container

Viewed 649

I'm trying build .net core 3.1 Angular app in Docker using Azure Pipeline. This is my Dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
     
RUN echo "Downloading NodeJS ..." && \
    curl "https://nodejs.org/dist/v12.10.0/node-v12.10.0-win-x64.zip" --output nodejs.zip && \
    echo "Expanding NodeJS ..." && \
    tar -xvf nodejs.zip -C "C:\\" 

RUN CD "C:\node-v12.10.0-win-x64" && \
    ECHO "npm install ..." && \
    npm install

CMD ["npm","start"]

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build

WORKDIR /src

COPY ["WebUI/WebUI.csproj", "WebUI/"]
RUN dotnet restore "WebUI/WebUI.csproj"
COPY . .
WORKDIR "/src/WebUI"
RUN dotnet build "WebUI.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebUI.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebUI.dll"]

I get error:

C:\src\WebUI\WebUI.csproj(134,5): error MSB3073: The command "npm install" exited with code 9009.

How can I install Node.js correctly?

1 Answers

Try to replace

CMD ["npm","start"]

by this :

RUN setx path "%path%;C:\node-v12.10.0-win-x64"
Related