Creé una aplicación web usando la plantilla angular dotnet cli.
dotnet new anguar WebAhora quiero dockerizar esta aplicación. Agregué el siguiente Dockerfile a la carpeta del proyecto.
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env WORKDIR /app # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "Web.dll"]Y luego ejecute el siguiente comando cuando esté en la carpeta del proyecto.
sudo docker build -t accman-web .Pero estoy recibiendo el siguiente error:
Restauración completada en 5.01 segundos para /app/Web.csproj. Web -> /app/bin/Release/netcoreapp2.2/Web.dll Web -> /app/bin/Release/netcoreapp2.2/Web.Views.dll /bin/sh: 2: /tmp/tmpa49d981806144cfd8e2cbdde42404952.exec. cmd: npm: no encontrado /app/Web.csproj(46,5): error MSB3073: El comando "npm install" salió con el código 127. El comando '/bin/sh -c dotnet publique -c Release -o out' devolvió un código distinto de cero: 1
¿Qué tengo que hacer para construir la imagen de esta sencilla aplicación?
Necesita nodejs y npm para Angular, que parece faltar. Agregue esto a su Dockerfile para instalar nodejs y npm en el contenedor:
RUN apt-get update && \ apt-get install -y wget && \ apt-get install -y gnupg2 && \ wget -qO- https://deb.nodesource.com/setup_6.x | bash - && \ apt-get install -y build-essential nodejsConsulte esta publicación de blog para obtener más detalles.