А
я зарегалась в docker hub через свою почту потом скачала desktop захожу туда чтоб войти. Войти не получается . Не кликается, если даже кликактся пишет login failed . No login session
GM
А пробовала docker login -u <your_username> с командной строки и потом пароль?
GM
https://docs.docker.com/engine/reference/commandline/login/
Aknazar
Сервере не сохранился пароль, docker login -u user -p password
Alexander
Всем привет!
Часто вижу примеры Dockerfile, в которых встречается
RUN npm install
Насколько я понимаю, это имеет только тогда смысл, когда файлы проекта предварительно копируются в контейнер.
Я не копирую файлы в контейнер, а работаю с volumes. Как тогда лучше всего запустить npm install?
Я пока сделал таким способом:
CMD ["/start.sh"]
а сам файл выглядит так:
service nginx start
npm install
npm run build
tail -f /dev/null & wait
Lev
у тебя, в таком случае, образ запечется без необходимых зависимостей, при рестарте все будет собираться вновь
Evgeniy
Evgeniy
npm install в докер сборке делают для прода, на этапе Билда проекта
Alexander
Evgeniy
Разработчики устанавливают зависимости обычно внутри entrypoint чтобы каждый раз запуская контейнер команда выполнялась
Alexander
Evgeniy
Тогда этот образ можно где угодно запускать
Alexander
Alexander
buid сам сделает install?
Evgeniy
Нет
Evgeniy
Нужен
npm i
npm run build
Evgeniy
Где хочешь можешь билдить я юзаю muktistage
Evgeniy
Multiestage*
Alexander
чё-то я запутался совсем
Evgeniy
Ты в начале определись со своей целью потом под нее выбирай решения
Evgeniy
Ты предлагаешь мне залесть тебе в голову и сказать нужно ли тебе?
Timur
Evgeniy
Попробуй подумать головой сам
Evgeniy
Можно статику хоть с с3 раздавать
Timur
Evgeniy
Evgeniy
Там обычно запускают дев сервер npm run dev
Alexander
Evgeniy
На продакшене используют обычно что то вроде nginx и отвязываются от npm если это фронтенд
Evgeniy
Тем самым можно брать обычный образ с nginx и просто складывать статику
Timur
multistage, в одном билдишь артефакты, копируешь в другой, например nginx если это статика
Alexander
Alexander
это удобнее для разработки
Timur
в гитлаб есть прексаный gitlab-ci
Alexander
Alexander
Timur
Alexander
Timur
можешь сбилдить образ, запушить в репозиторий того же gitlab или aws ecr
Timur
потом стягивать его при деплои в бой
Alexander
Evgeniy
Timur
xD
Alexander
Timur
не ссортесь)
Timur
что у вас за контент, статика какая-то билдится?
Alexander
а что деплоится на продакшен? Весь докоровский имидж с билдом внутри? Или только сам билд?
Timur
билд у вас уже прошел, деплоится образ nginx в котором ваша собранная статика
Alexander
Timur
бэк надеюсь в отдельном репозитории?
Alexander
Timur
конечно)
Alexander
конечно)
мне удобнее в одном репо. Если я делаю одновременно изменения на FE и BE, мне нужно один сделать коммит. и для лога удобнее
Timur
Timur
FE и BE как отдельные микросервисы одного проекта
Timur
завтра ваш DevOps инженер скажет вам спасибо)
Timur
Timur
как итог все разрабы будут говорить, что у них локально все работает, а прод лежит)
Alexander
я понял. чтоб немножко систематизировать.
На девелопе есть отдельно контейнер для ФЕ и для БЕ
когда делают git push, изменения должны задеплоиться на stage
Что это значит? Что гитлаб создаст новый имидж, в котором будет находиться билд моего приложения и этот имидж закачает на stage?
Timur
смотря что вы подразумеваете под stage
Timur
тригер для gitlab-ci может послужить не только новый commit в ветку
Alexander
в принципе, это скорее test-сервер
Timur
в прод, предпрод, стейдж и тд
Alexander
Timur
без опыта вам будет очень тяжело, если учесть, что сборка у вас вызывает проблемы
Alexander
Evgeniy
я бы предложил нанять специалиста