Как я пользуюсь докером в быту
(Программистская тема, так что всех не интересующихся прошу скиповать.)
Иногда бывает удобно установить что-то не из brew/apt (или аналога), а напрямую из исходников или скачав бинарник. С другой стороны устанавливать все зависимости времени компиляции и времени выполнения в основную систему неудобно, кроме того возможны конфликты между разными версиями библиотек и т.д.
В таких случаях максимально удобно использовать Docker.
Чтобы вручную не вбивать каждый раз кучу параметров docker build/docker run я пришёл к такой схеме:
* В ~/images пишу dockerfile для образа очередной программы, например youtube-dl.dockerfile для youtube-dl
* В ~/images/docker-compose.yml добавляю секцию для сборки и теггирования описанного образа
* Скрипт ~/images/build-all делает docker-compose build, собирая все образы
* Скрипт ~/images/wrap-all для каждого докерфайла создаёт скрипт запуска данного контейнера в ~/bin, вызывая ~/bin/docker-run-script
* Скрипт ~/bin/docker-run-scripts вызывает docker run ..., передавая параметры командной строки и подключая текущую директорию внутрь образа
Директория ~/bin добавлена в PATH, в итоге собранными в докере скриптами можно пользоваться как установленными локально (например, запускать youtube-dl-docker как если бы это был установленный youtube-dl).
Выложил на github: https://github.com/EugZol/docker-run-script
#programming
(Программистская тема, так что всех не интересующихся прошу скиповать.)
Иногда бывает удобно установить что-то не из brew/apt (или аналога), а напрямую из исходников или скачав бинарник. С другой стороны устанавливать все зависимости времени компиляции и времени выполнения в основную систему неудобно, кроме того возможны конфликты между разными версиями библиотек и т.д.
В таких случаях максимально удобно использовать Docker.
Чтобы вручную не вбивать каждый раз кучу параметров docker build/docker run я пришёл к такой схеме:
* В ~/images пишу dockerfile для образа очередной программы, например youtube-dl.dockerfile для youtube-dl
* В ~/images/docker-compose.yml добавляю секцию для сборки и теггирования описанного образа
* Скрипт ~/images/build-all делает docker-compose build, собирая все образы
* Скрипт ~/images/wrap-all для каждого докерфайла создаёт скрипт запуска данного контейнера в ~/bin, вызывая ~/bin/docker-run-script
* Скрипт ~/bin/docker-run-scripts вызывает docker run ..., передавая параметры командной строки и подключая текущую директорию внутрь образа
Директория ~/bin добавлена в PATH, в итоге собранными в докере скриптами можно пользоваться как установленными локально (например, запускать youtube-dl-docker как если бы это был установленный youtube-dl).
Выложил на github: https://github.com/EugZol/docker-run-script
#programming