Есть ли способ запустить .NET Core App внутри контейнера Linux? - PullRequest
0 голосов
/ 24 октября 2018

Я использовал Visual Studio 2017 (для Windows) для создания .Net Core App и пытаюсь запустить его внутри контейнера докера.На основе их веб-сайта .NET Core Apps должны позволить нам разработчикам создавать кроссплатформенное совместимое программное обеспечение;

.NET Core - это кроссплатформенная версия .NET для создания веб-сайтов, службы и консольные приложения.

Я пытался создать консольное приложение .NET Core;

using System;
using Newtonsoft.Json;

namespace Services
{
    class Program
    {
        static void Main(string[] args)
        {
            if (Enum.TryParse(
                typeof(LoremIpsumGenerator.TypeOfGenerator),
                args[0],
                true,
                out var testParse))
            {
                Console.WriteLine(
                    JsonConvert.SerializeObject(
                        LoremIpsumGenerator
                            .GenerateText(
                                int.Parse(args[1]),
                                (LoremIpsumGenerator.TypeOfGenerator) testParse)));
            }

            Console.WriteLine("Wrong Parameters!");
        }
    }
}

Опубликовать его через dotnet publish и запустить егоследующий;

FROM microsoft/aspnetcore:1.0.13-nanoserver-sac2016 AS base  

WORKDIR /Services  
COPY /bin/Debug/netcoreapp2.0/publish/ .  

ENTRYPOINT ["dotnet", "DockerConsoleTestApp.dll"]

.. однако я всегда, кажется, получаю следующее сообщение об ошибке:

image operating system "windows" cannot be used on this platform

.. котороеЯ интерпретирую как «Вы должны использовать Windows-контейнер для запуска этого». Но теперь я в замешательстве, поскольку и мое консольное приложение и мой контейнер должны быть кросс-платформенными, верно?Или я что-то упустил?

1 Ответ

0 голосов
/ 24 октября 2018

Строка:

FROM microsoft/aspnetcore:1.0.13-nanoserver-sac2016 AS base  

загружает Microsoft nanoserver 2016 в качестве базового образа.Это сервер Windows, а не сервер Линус.ЯВНО, результирующий образ должен работать на ядре Windows.

Используйте базовый образ Linux, если вам нужен базовый образ Linux.

Есть две соответствующие ссылки:

Просто невозможно сделать платформу независимой.Так как докер не запускает виртуальную машину, а «тонкая» виртуализация, разделяющая основную ОС .... ОС ОС должна соответствовать.

...