Приложение Ruby on Rails на docker ECS - PullRequest
0 голосов
/ 03 августа 2020

Я новичок в Ruby на Rails.

У меня есть приложение rails 6, которое работает в контейнере docker (с ECS Fargate)

Я хочу знать, если оно Можно ли установить ruby в настройках окружения рельсов из контейнера Настройки переменных окружения? В принципе, я не хочу передавать свой файл .env в репо. и не хотите управлять настройками каждой среды из ruby в файле настроек rails. Я бы предпочел добавить его в определение задачи и получить из него настройки.

Кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Вы можете передавать переменные среды в свою задачу при их запуске.

Например, у меня есть простое приложение ruby, которое имеет:

configure :custom do
  set :redishost, ENV['REDIS_SERVER_ENDPOINT']

Затем вы можете ссылаться на него в качестве переменной в коде как settings.redishost.

Когда я запускаю этот контейнер как часть задачи ECS / Fargate, я включаю переменную среды с именем REDIS_SERVER_ENDPOINT, которая читается программой Ruby с приведенный выше фрагмент кода. Это AWS do c, который показывает, как настроить переменную среды в задаче ECS .

Проблема в том, что если вы проверяете определение задачи в В исходном элементе управления эти переменные будут отображаться в виде обычного текста.

В качестве альтернативы вы можете использовать AWS Менеджер секретов, чтобы хранить переменные и ссылаться на них (аналогично) в определении задачи. Это требует немного большего количества проводов (которое я задокументировал здесь ), но более безопасного.

0 голосов
/ 03 августа 2020

Да, в основном вы можете использовать AWS Parameter Store для хранения окружения или секретов. Проверьте это: https://medium.com/nordcloud-engineering/ssm-parameter-store-for-keeping-secrets-in-a-structured-way-53a25d48166a

...