【发布时间】:2019-09-03 19:06:03
【问题描述】:
当我创建一个简单的 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 文件夹,有任何解决方法或方法可以解决它吗?
【问题讨论】:
-
npm未找到。构建包含 Node 的自定义构建映像,或者在构建项目之前将 Node 作为构建步骤安装。 -
链接的问题是指 2.1,但您可以使用与当前脚本相同的基础/构建图像,并结合链接问题的添加。
-
@John 我不认为,我已经尝试过了。
-
你尝试的时候发生了什么?
-
同样的错误....但我正在尝试另一种策略,单独构建并且它有效。所以我会把这个答案作为解决我问题的答案。
标签: c# reactjs docker docker-compose asp.net-core-2.0