Add Использование Docker для разработки и использования системы SAPFOR
@@ -0,0 +1,17 @@
|
||||
## Что такое Docker?
|
||||
|
||||
Это система контейнеризации, которая позволяет создавать образы (_Image_) - изолированные от хостовой ОС окружения. Из образа впоследствии можно запустить _контейнер_, в котором могут запускаться различный приложения, установленные в образе. Подробнее изучить технологию лучше всего по [ссылке](https://docs.docker.com/get-started/). Docker прост и очень удобен в использовании.
|
||||
|
||||
## Docker Images для SAPFOR
|
||||
Стандарт в индустрии - иметь 2 образа
|
||||
1. Образ для разработки (_sapfor-builder_ (скоро появится)) - в него предустановленны все необходимые пакеты для сборки исходного кода SAPFOR и ничего лишнего. Предполагается что репозиторий SAPFOR'a хранится в файловой системе хостовой ОС (например по пути `/path/to/src`), тогда исполняя в терминале команду для запуска контейнера из образа
|
||||
|
||||
|
||||
`docker run -it -v /path/to/src:/sapfor yatancuyu/sapfor-builder`
|
||||
|
||||
флаг `-v` монтирует директорию `/path/to/src` в хостовой ОС к директории `/sapfor` внутри контейнера, при этом все изменения совершаемые с файлами внутри контейнера видны и на хостовой ОС, и наоборот. Из чего например следует, что можно выполнять в хостовой ОС `git pull` и изменения отобразятся и в контейнере. Используя плагин [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) для VSCode можно подключиться к контейнеру, после чего разрабатываться точно также как и на хостовой ОС.
|
||||
|
||||
2. Образ для развертывания ([sapfor](https://hub.docker.com/r/yatancuyu/sapfor) _beta_) - предполагается что в этом образе SAPFOR уже скомпилирован и готов к работе. Также возможно что в будущем в образе будет установлен и **DVM** (когда автор разберется с его компиляцией), а в файловой системе образа можно будет найти задачи из пакета _NAS Parallel Benchmarks_
|
||||
## Для чего это может быть полезно
|
||||
1. Для разработки - особенно полезно пользователем Mac на M1/2/3, запуская контейнер с флагом `--platform linux/amd64` можно разрабатывать SAPFOR прямо как на x86_64, только нужно установить Docker Desktop именно для [Apple Silicon](https://docs.docker.com/desktop/install/mac-install/). Также может быть полезно для воспроизводимости каких-то ошибок связанных с компиляцией или использованием. **Если процесс разработки у вас уже настроен - пользоваться Docker'ом для разработки не имеет необходимости.**
|
||||
2. Для непосредственного использования - образ для развертывания может быть установлен и запущен одной командой, при этом пользователю не нужно ничего компилировать, он сразу получает доступ ко всему функционалу системы SAPFOR, а затем, возможно, запускать в рамках одного компьютера полученные распараллеленные программы с помощью DVM. Удобно для пользователей, которые только знакомятся с системой, хотят ее попробовать, не тратя время на разбирательство как скомпилировать программу и саму компиляцию.
|
||||
Reference in New Issue
Block a user