Рамиль
да
Maxim
да
вас не смущает что вы делаете билд для prod ?
Рамиль
ну он же не запускается, потому что у меня в docker-compose определен command
Maxim
и что означает "синхронизировать?"
Рамиль
блин
Maxim
Рамиль
я же уже объяснял
Рамиль
вы вместо того что бы линчевать мой конфиг, сказали бы что нужно делать
Maxim
Рамиль
как?
Рамиль
если вы не знаете как, зачем пишете тогда?
Maxim
как?
расскажите что вы пытаетесь сделать, из ваших конфигов не совсем ясно что пытаетесь решить
Рамиль
я хочу поднять у себя окружение для разработки. и что бы моя IDE нормально реагировала на зависимости из папки node_modules. но она на моем хосте пуста
Рамиль
Maxim
Рамиль
ну естественно я хочу разобраться
Рамиль
я же задаю конкретные вопросы
Maxim
это не директория node_modules, верно? скриншотик директории
Рамиль
это директория
Рамиль
Maxim
это директория
директория это там где файлы, слева панелька от кода
Рамиль
ну не держите меня за дурака))
Maxim
и вы здесь хотите видеть то что у вас собралось в образе при его билде, верно?
Рамиль
не в образе а в контейнере
Рамиль
но я понял о чем вы
Рамиль
да верно
Maxim
Dockerfile создает образ, контенер на его основе работает
Maxim
вы не увидите файлы на хосте при таком подходе
Рамиль
почему? что мешает?
Рамиль
потому что я делаю COPY . .?
Рамиль
а какой подход мне нужен?
Maxim
потому что я делаю COPY . .?
вы устанавливаете пакеты при билде в образ, а вам нужно делать билд проекта в директории на хосте с помозью одного контейнера и запускать с помощью другого контейнера. ервый вам родит node_modules, а второй его запустит
Рамиль
есть какие нибудь примеры реализации?
Рамиль
не совсем так со слов понятно
Maxim
по шагам:
1) docker run -it --rm -v ./:/workdir --name yarn node:8.11.0 yarn
2) docker-compose up -d
Anonymous
Hello World!
Рамиль
Maxim
Рамиль
мне каждый раз придется у себя запускать сначала контейнер yarn, а потом еще и docker-compose up
Рамиль
ну я вроде думал докер служит для упрощения работы, а не усложнения
Maxim
Рамиль
мне нужно будет это сделать один раз docker run -it --rm -v ./:/workdir --name yarn node:8.11.0 yarn?
Maxim
для создания node_modules в директории проекта? - да
Рамиль
то есть запускать это каждый раз когда я хочу установить зависимость?
Рамиль
просто команда установки зависимости всегда разная. в ней могут быть указаны разные либы для установки, и для этого мне придется каждый раз все это делать через докер?
Рамиль
вам не кажется что это все усложняет работу разработчика?
Рамиль
придумываем дополнительную работу
Maxim
docker run -it --rm -v ./:/workdir --name yarn node:8.11.0 yarn add lib1 lib2 lib3
сойдет?
Рамиль
так может мне сразу у себя на хосте установить
Рамиль
без докера?
Рамиль
к чему эти условности?))
Рамиль
тогда зачем нужен докер для разработчика?))
Maxim
что бы не устанавливать на хост какой то софт не той версии
Ильдар
Чтобы запускать приложения изолированно от остальной системы.
Рамиль
а зачем запускать приложение изолированно от системы?
Рамиль
если я могу запускать в самой системе?
Maxim
Рамиль
ну тут уже начинается холивар))
Maxim
Рамиль
я думаю на этом и остановимся))
Рамиль
спасибо всем кто помогал))
Рамиль
@rttrttrtt тебе в особенности
Рамиль
да стало ясней
Maxim
да стало ясней
рекомендую создать два Dockerfile для вашей node.js
1) для dev, например вот такой:
FROM node:12-alpine
ENV NODE_ENV development
# Set a working directory
WORKDIR /var/www/api
2) для prod, он у вас уже есть.
тот что для dev используйте и для запуска приложения и для установки зависимостей, в вашей IDE можно настроить External Tools для выполнения этой команды доступной под правым счелчком мышки, будет удобно.
Но религией не запрещено устанавливать на хост приложения и использовать эти приложения, главное что бы у вас не было проблем с запуском на prod вашего кода, остальное - не так важно ;)
George
George
А сейчас придут утырки и будут рассказывать, что дев и прод - все одно и образы должны быть идентичны. Но .... Нет, не согласен. Все правильно советуете !
Anonymous