На самом деле всем устраивает, я просто пытаюсь выбрать самый простой вариант
я тоже за то, чтобы не держать стейтфул-штуки в докере, поэтому всегда выношу базы в хост.
я делал:
- со свормом и базами на одной ноде, со своим registry и с CD на гитлабе. дебильно в плане использования всего этого на одной ноде, но я создавал возможность для скейлинга, поэтому норм. Разбирался и настраивал всё в первый раз пару дней, наверное. подводные камни: IP хостовой машины в контексте докера может меняться + трафик из докера в хостовую машину по дефолту закрыт (или как ето у админов там называется), поэтому придётся открывать доступ к хостовой машине, чтобы подключиться к стейтфул-штукам.
- dokku и базы на разных нодах. в целом прикольно, но с dokku пришлось повозиться, чтобы замаунтить вольюмы и настроить все конфиги правильно, но это скорее проблема контейнеризации аппы. Настроил всё за день. Подводные камни: немного корявая документация и настройка аппы не через локальный клиент, как у хероку, а на сервере. К тому же он сам управляет конфигом nginx (не без кастомизации), что может создавать сложности. А еще он отлично работает со своими дефолтными докер-образами, но если захочешь юзать кастомный, придётся тоже поколупаться. И в конце концов, насколько я знаю, они еще не выпустили v1.0.
- просто docker-compose с ключом restart: always. это самый простой и дешевый вариант, если не критичный проект и важнее быстро и легко запустить и раз в пару месяцев апгрейдить, чем поддерживать 99.9% аптайм. тут можно даже базы и брокеры в контейнере запустить. тут можно подмандячить девовый compose.yaml и поднять всё за 15 минут вместе с настройкой nginx