在Dockerfile中找不到命令'dotnet'

时间:2019-03-11 18:50:18

标签: node.js docker .net-core

我尝试用docker构建映像以运行项目,但是当我运行docker build时,执行步骤5/12:

/ bin / sh:1:dotnet:找不到 命令“ / bin / sh -c dotnet restore”返回非零代码:127

注意:我正在运行.Net Core和Node Modules,所以我都将它们放在Dockerfile中,可以吗?我是Docker的新手

这是我的dockerfile:

# Otenemos el SDK de .Net Core en la versión 2.1
FROM microsoft/dotnet:2.1-sdk
FROM node:11
WORKDIR /FrontEnd

#Copiamos el archivo .csproj y restauramos paquetes.
COPY *.csproj ./
RUN dotnet restore
COPY package.json ./
RUN npm install

# Copiamos todo lo demás
COPY . ./

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /FrontEnd

ENTRYPOINT [ "dotnet", "run" ] 

编辑

这是我的新Dockerfile 似乎可以在控制台中使用,但不能在Chrome中使用。

这是我在控制台中运行的命令: docker运行--rm name_proj:latest

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /FrontEnd
COPY *.csproj ./
COPY package.json ./
RUN dotnet restore
RUN apt-get update -yq && apt-get upgrade -yq && apt-get install -yq curl git nano
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash - && apt-get install -yq nodejs build-essential
RUN npm install -g npm
RUN npm install
COPY . ./

#FROM microsoft/dotnet:2.1-aspnetcore-runtime

ENTRYPOINT [ "dotnet", "run" ]

登录控制台: enter image description here

当我打开localhost:5001时

1 个答案:

答案 0 :(得分:0)

您只能通过FROM从一个容器继承。每次使用FROM时,您都将切换为使用新容器作为基础。

FROM microsoft/dotnet:2.1-sdk
FROM node:11

效果与

相同
FROM node:11

node容器中,没有安装.NET Core。

如果要使用dotnetnpm命令都可用的容器,则需要自己构建它。这是有关stackoverflow的答案,向您显示了如何执行此操作:How to integrate 'npm install' into ASP.NET CORE 2.1 Docker build。简短的版本是从一个容器(可能是FROM microsoft/dotnet:2.1-sdk)开始,然后手动将node软件包安装到其中。