Я хочу создать образ докера для кода, написанного в .NET Core (C # Visual Studio 2017), который можно запустить в Linux.
Шаги - я создаю новый файл, например, hello world:
using System;
namespace myApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Файл докера (для Windows), который был протестирован и работает:
FROM microsoft/dotnet:2.1-sdk
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# copy and build everything else
COPY . ./
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "out/myApp.dll"]
Файл Docker для Linux:
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY ./publish .
ENTRYPOINT ["dotnet", "Receive.dll"]
Выше не работает хорошо.
При запуске (в командной строке. Контейнер Linux):
docker build . -t myapp_linux
Я получил сообщение:
Сбой копирования: stat / var / lib / docker / tmp / docker-builder786597608 / publish: нет такого файла или каталога
Также попытался изменить конфигурацию на что-то вроде:
FROM microsoft/aspnetcore:2.0
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# copy and build everything else
COPY . ./
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "Receive.dll"]
Выше не работает, и я получил сообщение:
Вы хотели запускать команды dotnet SDK? Пожалуйста, установите dotnet SDK из:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409