Команда 'dotnet' не найдена в Dockerfile - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь создать образ с помощью Docker для запуска проекта, но когда я запускаю сборку Docker, шаг 5/12:

/ bin / sh: 1: dotnet: not foundКоманда '/ 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" ] 

EDIT

Это мой новый Dockerfile Кажется, работает в консоли, нов Chrome нет.

Это команда, которую я запускаю в консоли: Docker run --rm name_proj: последний

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 голосов
/ 11 марта 2019

Вы можете наследовать только от одного контейнера через FROM. Каждый раз, когда вы используете FROM, вы переключаетесь на использование нового контейнера в качестве базы. Когда вы делаете

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

Эффект такой же, как и у

FROM node:11

А в константе node не установлено .NET Core.

Если вам нужен contianer, в котором доступны команды dotnet и npm, вам нужно создать его самостоятельно. Вот ответ на stackoverflow, который покажет вам, как это сделать: Как интегрировать 'npm install' в сборку ASP.NET CORE 2.1 Docker . Короче говоря, вы начинаете с одного контейнера (возможно, FROM microsoft/dotnet:2.1-sdk) и устанавливаете в него пакеты node вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...