Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!22.10.2023
Як НЕ користуватись Докером для розробки
Як писав, розробка в Docker мене все ще не влаштовує. Втім, я перейшов на macOS саме для того, щоб працювала більшість потрібних для роботи програм (бо до того колись дуже давно був Windows+VirtualBox.) Та й дійсно, в більшості випадків потреби в Docker в мене немає. Ізолювати оточення проєктів та керувати флотом процесів допомагають наступні інструменти:
-
direnv - налаштовує оточення термінала в залежності від поточного розташування. Абсолютно незамінна річ. Є схожі рішення, які будуть вбудовані в додатки (dotenv одне з популярних), але
direnv
працює на рівні оболонки, тому його оточення підхоплюється всіма можливими інструментами (навіть для VSCode є доповнення). Рекомендую звернути увагу на функції PATH_add та layout. -
asdf - універсальний менеджер версій — дозволяє мати декілька версій інтерпретатора та перемикатися між ними. Давно замінив для мене rvm, rbenv, nvm, і так далі. Бо має плагіни практично на всі інтерпретатори, компілятори та інші програми. Наприклад, Hugo, Golangci-lint, та Terraform. Це вкрай важливо, коли працюєш з багатьма проєктами.
-
Foreman - дозволяє запустити декілька сервісів однією командою та в одному терміналі. Тобто це такий “бюджетний аналог” Docker Compose. Підійде, вам потрібно запускати одночасно додаток, чергу задач, вебпак, базу даних і все інше. До речі, я б радив замість Foreman встановити Goreman - клон на Go - бо він не потребує Ruby. Обидві утиліти доступні через Homebrew.
-
Як щодо баз даних та інших сервісів, до яких не потрібно постійно доторкатись, то я б насправді радив запускати їх в Docker. Хоча для базового функціонала є Postgres.app, а Redis або MongoDB або ще щось інше можна встановити з Homebrew, та ще й зробити сервісом, який запущений завжди.