首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在docker上部署net core 2应用程序

在docker上部署net core 2应用程序
EN

Stack Overflow用户
提问于 2019-04-13 10:11:26
回答 1查看 2.1K关注 0票数 2

当我创建一个简单的React和Net Core 2.2时。使用命令dotnet new react进行项目,并添加文件以在Docker上构建和部署应用程序,但docker无法构建。

我的Docker Compose文件包含:

代码语言:javascript
运行
复制
version: '3'
services:
  netreact:
    container_name: netreactapp
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "5000:5000"
    restart: always

我的Dockerfile包含:

代码语言:javascript
运行
复制
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恢复时失败,错误如下:

代码语言:javascript
运行
复制
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文件夹,有什么解决方法或方法可以修复它吗?

EN

回答 1

Stack Overflow用户

发布于 2019-04-13 14:30:38

微软关于how to use the React project template with ASP.NET Core的教程指出,构建过程使用npm来恢复npm依赖项并启动服务器。

此外,该文档还指出,需要使用Node.js进行开发构建。

因此,在构建应用程序之前,您需要确保您的Docker镜像包含npm。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55661403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档