当我创建一个简单的React和Net Core 2.2时。使用命令dotnet new react进行项目,并添加文件以在Docker上构建和部署应用程序,但docker无法构建。
我的Docker Compose文件包含:
version: '3'
services:
netreact:
container_name: netreactapp
build:
context: .
dockerfile: Dockerfile
ports:
- "5000:5000"
restart: always我的Dockerfile包含:
FROM microsoft/dotnet:sdk AS base
WORKDIR /app
FROM microsoft/dotnet:sdk AS build
WORKDIR /src
COPY *.sln ./
COPY MyReactApp/*.csproj ./MyReactApp/
RUN dotnet restore
WORKDIR /src/MyReactApp
RUN dotnet publish -c Release -o /app /property:PublishWithAspNetCoreTargetManifest=false
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "MyReactApp.dll"]因此,当我运行命令来构建和设置docker-compose up -d我的docker时,它们在Npm恢复时失败,错误如下:
Step 16/22 : RUN dotnet publish -c Release -o /app /property:PublishWithAspNetCoreTargetManifest=false
---> Running in dc0532c03e90
Microsoft (R) Build Engine version 16.0.450+ga8dc7f1d34 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 276.74 ms for /src/MyReactApp/MyReactApp.csproj.
StWebApp -> /src/MyReactApp/bin/Release/netcoreapp2.2/MyReactApp.dll
StWebApp -> /src/MyReactApp/bin/Release/netcoreapp2.2/MyReactApp.Views.dll
/bin/sh: 2: /tmp/tmp813c90672ba947489ab89ec17eb80722.exec.cmd: npm: not found
/src/MyReactApp/MyReactApp.csproj(48,5): error MSB3073: The command "npm install" exited with code 127.
ERROR: Service 'netreactapp' failed to build: The command '/bin/sh -c dotnet publish -c Release -o /app /property:PublishWithAspNetCoreTargetManifest=false' returned a non-zero code: 1我认为这是因为csproj的管道试图使用npm构建ClientApp文件夹,有什么解决方法或方法可以修复它吗?
发布于 2019-04-13 14:30:38
微软关于how to use the React project template with ASP.NET Core的教程指出,构建过程使用npm来恢复npm依赖项并启动服务器。
此外,该文档还指出,需要使用Node.js进行开发构建。
因此,在构建应用程序之前,您需要确保您的Docker镜像包含npm。
https://stackoverflow.com/questions/55661403
复制相似问题