Может ли Docker помочь построить исполняемый файл, работающий на другой платформе

Я новичок в докере, и поэтому мой вопрос может быть очень наивным / глупым. Приложение, которое мы используем в настоящее время, должно быть скомпилировано на другой платформе, чтобы оно работало на желаемой платформе, т.е. в основном в Linux и Window. Поэтому нам нужно скомпилировать исходный код (C / C ++) на другой платформе и предоставить клиенту разные исполняемые файлы в соответствии с их ОС.
Мой вопрос
1. Возможно ли с докером, что у меня есть один исполняемый файл, который работает на всех платформах? т.е. я собираю свой исходный код на одной платформе, например в Linux, и поставляю исполняемый файл с докером для запуска на платформе Window

заранее спасибо

9

Решение

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

Вы должны настроить докеры и тестовые сценарии и получить кросс-платформенный код в первую очередь. Но после того, как это будет сделано, вы можете не беспокоиться о какой-либо другой платформе, если не сломаете ее.

2

Другие решения

Docker позволяет запускать один и тот же контейнер в любом современном дистрибутиве Linux — вам нужен только установленный докер. Вы не можете запустить эти контейнеры непосредственно в Windows — вам нужно запустить виртуальную машину с Linux, которая будет запускать Docker-контейнер. Это то, что делает boot2docker — запуск докеров на Windows и Mac Os X на виртуальной машине. В некоторых случаях это приемлемо.

2

Нет, не может, докер только для Linux. Чтобы запустить докер в Windows, вы нужна виртуальная машина.

Если вы не тратите время на обертывание сценария установки для установки виртуальной машины и всего остального, вы можете просто запустить соответствующую виртуальную машину в Virtual Box или VMWare по вашему выбору. Даже тогда ваш опыт работы с приложениями в Windows будет второстепенным, поскольку он не работает изначально.

1
По вопросам рекламы [email protected]