Как запустить консоль рельсов в контейнере Fargate - PullRequest
1 голос
/ 25 апреля 2019

Я хотел бы открыть консоль Rails в контейнере Fargate для взаимодействия с моей производственной установкой

Однако после поиска в Интернете и публикации в форуме AWS я не смог найти ответ на этот вопрос

Кто-нибудь знает, как я могу это сделать?Это кажется обязательным условием в любой производственной среде, и отсутствие простого способа сделать это вызывает удивление у такого уважаемого облачного провайдера, как AWS

Спасибо

Ответы [ 3 ]

2 голосов
/ 26 апреля 2019

Попробовав много вещей, я нашел способ открыть консоль Rails, указывающую на мою производственную среду, поэтому я опубликую ее здесь на случай, если кто-то столкнется с такими же проблемами

Подводя итог, я добавляю рельсыприложение, развернутое на Fargate, подключенном к базе данных postgres RDS

Я создал конечную точку VPN-клиента для VPC, на котором размещено мое приложение Rails и моя база данных RDS

Затем, после подключения к этой VPN,Я просто запускаю свой производственный контейнер rails (с теми же переменными среды), переопределяя команду контейнера для запуска сценария запуска консоли (bundle exec rails c production)

При запуске на моей локальной машине я обычно могу прикрепить TTY к этому контейнеруи получить доступ к моей производственной консоли

Я думаю, что это решение хорошо, потому что оно позволяет любому разработчику, работающему над проектом, открывать консоль без каких-либо затрат, а продуманная политика безопасности на стороне AWS гарантирует, что доступ к консолибезопасно, плюс вам не нужно раскрывать свои данныебаза за пределами вашего VPC

Надеюсь, это помогло кому-то

1 голос
/ 25 апреля 2019

Вы не можете подключиться к базовому хосту по ssh, когда используете тип выполнения Fargate для ECS.Это означает, что вы не можете выполнить docker exec в работающий контейнер.

0 голосов
/ 25 апреля 2019

Я не пробовал это в Fargate, но вы должны быть в состоянии создать задачу fargate , в которой команда будет rails console.

Тогда, если вы настроите задачу как interactive, вы сможете запустить интерактивный контейнер и получить доступ к консоли через стандартный ввод.

...