В первую очередь статья выглядит переусложненной, если верить вашему Dockerfile, то это сетап для локальной разработки.
Например непонятно зачем было брать контейнер с passenger и что мешало взять образ ruby:3.1.2 и для тестового запуска использовать puma, ну или passenger в standalone режиме. А так получилось нагромождение, например nginx, который для локальной rails-разработки не нужен.
А еще вы прокидываете SSH ключ в контейнер и экспоузите SSH порт, зачем?! Что бы попасть в контейнер есть команда docker exec. Более того запуск более одного процесса в рамках docker контейнера - это плохая практика, да для локальной разработки "итак сойдет", но лучше не учить людей плохому.
Создается впечатление, что описанный вами опыт в статье плохо систематизирован.
Автор оригинала решал очень простые проблемы, я бы даже сказал что тривиальные.
Но когда появится необходимость писать уже чуть более сложную бизнесс логику, то полезет много неприятных моментов в виде в рефлексию и/или написание полотна однообразного кода. Go не самый удачный выбор для сложных веб-приложений.
Обсуждение использования S3-совместимого хранилища для кешей было, но так и не реализовано. На данный момент есть такое решение в виде sftp клиента, чем мы у себя и пользовались.
Отказ от локального монтирования томов был связан с появлением агентов, которые могли находиться на разных машинах. Есть вот такое решение http://plugins.drone.io/drillster/drone-volume-cache/, если нужно уметь работать с разными агентами на разных серверах, то можно использовать в связке с glusterfs или с другими решениями типа ceph.
Это один из внесенный на рассмотрение законопроект, и не факт что примут. А пока http://www.moi.gov.cy/moi/crmd/crmd.nsf/duetoyears_en/duetoyears_en?OpenDocument
В первую очередь статья выглядит переусложненной, если верить вашему Dockerfile, то это сетап для локальной разработки.
Например непонятно зачем было брать контейнер с passenger и что мешало взять образ ruby:3.1.2 и для тестового запуска использовать puma, ну или passenger в standalone режиме. А так получилось нагромождение, например nginx, который для локальной rails-разработки не нужен.
А еще вы прокидываете SSH ключ в контейнер и экспоузите SSH порт, зачем?! Что бы попасть в контейнер есть команда docker exec. Более того запуск более одного процесса в рамках docker контейнера - это плохая практика, да для локальной разработки "итак сойдет", но лучше не учить людей плохому.
Создается впечатление, что описанный вами опыт в статье плохо систематизирован.
Спасением от bundler install --help и bundler exec --help?
Но когда появится необходимость писать уже чуть более сложную бизнесс логику, то полезет много неприятных моментов в виде в рефлексию и/или написание полотна однообразного кода. Go не самый удачный выбор для сложных веб-приложений.