From 8ac08cdc15ef02c4e1639afcc1a18a0ef4f27925 Mon Sep 17 00:00:00 2001 From: abrosim0v Date: Sun, 17 Dec 2023 10:32:06 +0000 Subject: [PATCH] =?UTF-8?q?Add=20=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20Docker=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=80=D0=B0=D0=B7=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B8=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BC=D1=8B=20SAPFOR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-SAPFOR.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 %D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Docker-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-SAPFOR.md diff --git a/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Docker-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-SAPFOR.md b/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Docker-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-SAPFOR.md new file mode 100644 index 0000000..187a2bf --- /dev/null +++ b/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Docker-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-SAPFOR.md @@ -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. Удобно для пользователей, которые только знакомятся с системой, хотят ее попробовать, не тратя время на разбирательство как скомпилировать программу и саму компиляцию. \ No newline at end of file