Size: a a a

JavaScript.Ninja

2019 December 16

VK

Vladimir Klimov in JavaScript.Ninja
Всем првет, вопрос не совсем по js, скорее по организации окружения для разработки и деплоя на докере. Если есть, к примеру, node приложение, которое и разрабатывать и деплоить планируется внутри docker контейнера. Как управлять этими окружениями? Описывать ли несколько докерфайлов (для dev и prod), или передавать окружение, для которого будет билдится контейнер, с помощью аргументов? Как правильно делать и где об этом можно найти информацию?
источник

IK

Illya Klymov in JavaScript.Ninja
Если хотите делать правильно - ваш контейнер не должен ничего знать о целевом окружении
источник

IK

Illya Klymov in JavaScript.Ninja
Один и тот же контейнер должен работать в другом окружении без пересборки
источник

VK

Vladimir Klimov in JavaScript.Ninja
Illya Klymov
Один и тот же контейнер должен работать в другом окружении без пересборки
Это значит, что разница для контейнера должна быть только в значениях аргументов, которые ему передаются снаружи?
источник

IK

Illya Klymov in JavaScript.Ninja
Vladimir Klimov
Это значит, что разница для контейнера должна быть только в значениях аргументов, которые ему передаются снаружи?
Да
источник

IK

Illya Klymov in JavaScript.Ninja
Про это 12факторные окружения пишут
источник

VK

Vladimir Klimov in JavaScript.Ninja
Просто причина, по которой разработку хочется вести в докере - одинаковое дев окружение для всех разработчиков, но приложение внутри в дев и прод режиме работает ведь иначе. В проде, например, я хочу запускать нодой, а в во время локальной разработки - каким-то nodemon (грубый пример для ясности)...и проблема не в том, что контейнер зависит от окружения, это разные контейнеры, по-факту, вот вопрос в том, как это организовать
источник

IK

Illya Klymov in JavaScript.Ninja
Тогда отдельные докерфайлы
источник

IK

Illya Klymov in JavaScript.Ninja
И искренних успехов в этой идее :)
источник

AS

Alexander Shamshurin in JavaScript.Ninja
Один артефакт на любой контур. Как бы принцип.
источник

IK

Illya Klymov in JavaScript.Ninja
Как показывает моя практика разработка в докере имеет очень много проблем
источник

AS

Alexander Shamshurin in JavaScript.Ninja
Alexander Shamshurin
Один артефакт на любой контур. Как бы принцип.
Но лично у меня трудности, потому что это поразумевает передачу  произвольных переменных окружения в среду исполнения. Для ноды это ок, а вот что касается клиентской части, то там нужно вбилживать в js бандл все эти переменные окружения. А значит нужен их список, а значит всякие .env файлы, что как бы противоречит идеи "артифакт на любой контур".
источник

IK

Illya Klymov in JavaScript.Ninja
Alexander Shamshurin
Но лично у меня трудности, потому что это поразумевает передачу  произвольных переменных окружения в среду исполнения. Для ноды это ок, а вот что касается клиентской части, то там нужно вбилживать в js бандл все эти переменные окружения. А значит нужен их список, а значит всякие .env файлы, что как бы противоречит идеи "артифакт на любой контур".
А вы их не встраивайте в бандл
источник

AS

Alexander Shamshurin in JavaScript.Ninja
А куда лучше?
источник

D

Denis in JavaScript.Ninja
Illya Klymov
Как показывает моя практика разработка в докере имеет очень много проблем
Вс коуд ремоут контейнерс!
источник

VK

Vladimir Klimov in JavaScript.Ninja
Illya Klymov
Тогда отдельные докерфайлы
Я видел подход, где люди в докерфайлах клепают условия, грубо говоря, а собирают контейнеры docker-compose-ом, которым внутрь докерфайла передают всякие аргументы-флаги. И вот этих docker-compos-a два для дева и для проды.
источник

AS

Alexander Shamshurin in JavaScript.Ninja
Illya Klymov
А вы их не встраивайте в бандл
ну тогда или по ручке получать или window.ENV сериализовывать
источник
2019 December 17

RM

Roman Movel in JavaScript.Ninja
Здравствуйте! Извините за глупый вопрос, но Redux store - хранится в памяти браузера? Или где-то на сервере?
источник

M

Max in JavaScript.Ninja
Roman Movel
Здравствуйте! Извините за глупый вопрос, но Redux store - хранится в памяти браузера? Или где-то на сервере?
В памяти браузера
источник

RM

Roman Movel in JavaScript.Ninja
Max
В памяти браузера
спасибо.
источник