Да, что возможно. Две возможности:
- Переносные приложения: вам необходимо установить .NET Core на эту целевую машину. Это тот же самый байт-код, который просто выполняется где-то еще.
- Самостоятельное приложение: во время сборки вы указываете целевые платформы как «runtimes» в project.json вашего проекта.
dotnet restore
, dotnet build
, dotnet restore -r ubuntu.14.04-x64
.
Вы должны знать: оба решения скомпилированы в байт-код. Второй вариант свяжет среду выполнения .NET Core вместе с вашим выходом, поэтому вам не нужна локальная установка (это то, что вы хотите для докера).
Существует еще один шаг, называемый .NET Native (https://github.com/dotnet/corert), который еще не поддерживается (это ранняя бета-версия). Это позволит скопировать исходный код в исходные исполняемые файлы. Я не знаю, использует ли данный вариант использования кросс-компиляцию. Но на данный момент нормальное выполнение байт-кода и JITing должно быть достаточным.
Ядро .NET помогает достичь этого. Записывайте приложения в Windows и настраивайте их на платформу .NET Core. Ядро .NET - это открытая кросс-платформа. Вы правы насчет изображения докеров –