Rails, ember, redis, nginx и докер

Коллеги, у меня есть интерфейсное приложение на основе Ember и Rails (работающее на nginx), которое также использует redis в качестве кеша.

Я хочу докеризовать это приложение, но не уверен в лучших практиках. Было бы лучше создать один контейнер с файлом докеров, который втягивает все эти части, или каждый компонент должен быть в своем собственном контейнере?

Для бонусных баллов: я должен получить код из частных репозиториев битбакетов и .. как мы собираемся хранить наши секреты и другие файлы конфигурации при использовании контейнеров?

Комментирую как напоминание себе, что нужно ответить на этот вопрос, потому что я довольно часто использую докер. А сейчас в самолете.

NullVoxPopuli 14.09.2018 01:12
1
1
256
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я постараюсь изо всех сил с телефона,

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

Что касается докеризации, я обычно использую бэкэнд (в данном случае рельсы) в одном (или нескольких) контейнерах, а nginx - в одном контейнере, связанном с одностраничным приложением (в данном случае ember).

Итак, у вас должно быть всего два файла докеров.

Вот некоторые ресурсы, которые, надеюсь, предоставят достаточно для начала:

Дотнет + реакция: https://github.com/sillsdev/appbuilder-portal/ Современный передовой уголек: https://gitlab.com/NullVoxPopuli/emberclear/ Старый уголек: https://gitlab.com/precognition-llc/aeonvera-ui Рельсы: https://gitlab.com/precognition-llc/aeonvera

Для nginx эта первая ссылка показывает ядро ​​dotnet и приложение для реагирования с nginx, а также описанную мной стратегию развертывания. Для nginx вы начнете с контейнера узла или образа ember-cli от danlynn (который до сих пор не ответил мне о том, чтобы разместить их в официальной док-станции ember), и использовать многоступенчатые сборки, чтобы в конечном итоге скопировать вашу папку dist в каталог в контейнере nginx на последнем этапе.

Надеюсь это поможет. При необходимости я могу уточнить больше.

Это, безусловно, полезно. Я так понял, что мы можем использовать секреты докеров docs.docker.com/engine/swarm/secrets, но только на рое докеров? Было бы разумно создать ссылку на каталог на хосте, где будут храниться секретные файлы?

Alexandros K 14.09.2018 16:24

У меня также есть Redis, будет ли он работать в отдельном контейнере? И рельсы, и другой процесс узла должны взаимодействовать с Redis.

Alexandros K 14.09.2018 16:25

Да, Redis будет отдельным контейнером. :)

NullVoxPopuli 14.09.2018 17:04

Я не знаком с docker swarm, использовал только rancher, kubernetes и heroku.

NullVoxPopuli 14.09.2018 17:04

Но, в принципе, ничего секретного в файле быть не должно :)

NullVoxPopuli 14.09.2018 17:05

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

NullVoxPopuli 14.09.2018 17:07

Было бы неуместным иметь «секретное» изображение для секретов? Вероятно, это антипаттерн. Кстати классное приложение emberclear так круто

Alexandros K 14.09.2018 20:17

Другие вопросы по теме