У Льоні сьогодні

Як НЕ користуватись Докером для розробки

Як писав, розробка в 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, та ще й зробити сервісом, який запущений завжди.