А
я зарегалась в 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
npm install в докер сборке делают для прода, на этапе Билда проекта
Alexander
Evgeniy
Разработчики устанавливают зависимости обычно внутри entrypoint чтобы каждый раз запуская контейнер команда выполнялась
Alexander
npm install в докер сборке делают для прода, на этапе Билда проекта
а на проде имеет смысл весь проект зафигачить в докер?
Evgeniy
а на проде имеет смысл весь проект зафигачить в докер?
Имеет смысл сбилдить проект npm run build и вот результат Билда уже сложить в образ
Evgeniy
Тогда этот образ можно где угодно запускать
Alexander
Имеет смысл сбилдить проект npm run build и вот результат Билда уже сложить в образ
что-то я запутался. если я делаю npm run build , то npm install не нужен?
Alexander
buid сам сделает install?
Evgeniy
Нет
Evgeniy
Нужен npm i npm run build
Alexander
Имеет смысл сбилдить проект npm run build и вот результат Билда уже сложить в образ
Имеет смысл сбилдить проект npm run build и вот результат Билда уже сложить в образ вот это я не понял. где сбилдить? в контейнере же
Evgeniy
Где хочешь можешь билдить я юзаю muktistage
Evgeniy
Multiestage*
Alexander
чё-то я запутался совсем
Alexander
Multiestage*
впервые слышу об этом
Evgeniy
Evgeniy
Ты в начале определись со своей целью потом под нее выбирай решения
Alexander
google docker multiestage
нужен ли он мне, если я использую gitlab, а приложение будет на продакшине в AWS?
Evgeniy
Ты предлагаешь мне залесть тебе в голову и сказать нужно ли тебе?
Evgeniy
Попробуй подумать головой сам
Evgeniy
Можно статику хоть с с3 раздавать
Alexander
Ты в начале определись со своей целью потом под нее выбирай решения
Правильно ли я понял, что билд надо делать в контейнера на девелопе, а потому уже готовый билд загружается на продакшн?
Evgeniy
Там обычно запускают дев сервер npm run dev
Evgeniy
На продакшене используют обычно что то вроде nginx и отвязываются от npm если это фронтенд
Evgeniy
Тем самым можно брать обычный образ с nginx и просто складывать статику
Alexander
смотря какой способ доставки контента вы реализуете
как я понимаю, gitlab может создать build и загрузить его на продакш
Timur
multistage, в одном билдишь артефакты, копируешь в другой, например nginx если это статика
Alexander
это удобнее для разработки
Timur
в гитлаб есть прексаный gitlab-ci
Timur
что такое артефакты?
то что сбилдил npm
Alexander
в гитлаб есть прексаный gitlab-ci
что это значит? Что там надо собирать билд?
Timur
можешь сбилдить образ, запушить в репозиторий того же gitlab или aws ecr
Evgeniy
я использую npm run serve
Я очень рад Вопрос то в чем?
Timur
потом стягивать его при деплои в бой
Evgeniy
почему?
Гладиолус
Timur
xD
Timur
не ссортесь)
Timur
что у вас за контент, статика какая-то билдится?
Alexander
а что деплоится на продакшен? Весь докоровский имидж с билдом внутри? Или только сам билд?
Timur
билд у вас уже прошел, деплоится образ nginx в котором ваша собранная статика
Alexander
что у вас за контент, статика какая-то билдится?
фронеэнд на vuejs, а бэкэнд на симфони
Timur
бэк надеюсь в отдельном репозитории?
Alexander
Timur
конечно)
Alexander
конечно)
мне удобнее в одном репо. Если я делаю одновременно изменения на FE и BE, мне нужно один сделать коммит. и для лога удобнее
Timur
FE и BE как отдельные микросервисы одного проекта
Timur
завтра ваш DevOps инженер скажет вам спасибо)
Alexander
FE и BE как отдельные микросервисы одного проекта
да, я понимаю. Просто я думал, что даже если в каждом из сервисом и будут лежать "лишние" файлы, то ничего страшного в этом нет
Alexander
завтра ваш DevOps инженер скажет вам спасибо)
нету его. вот и приходится брать на себя его обязанности. А опыта пока в этом нет
Timur
как итог все разрабы будут говорить, что у них локально все работает, а прод лежит)
Alexander
я понял. чтоб немножко систематизировать. На девелопе есть отдельно контейнер для ФЕ и для БЕ когда делают git push, изменения должны задеплоиться на stage Что это значит? Что гитлаб создаст новый имидж, в котором будет находиться билд моего приложения и этот имидж закачает на stage?
Timur
смотря что вы подразумеваете под stage
Alexander
смотря что вы подразумеваете под stage
некий сервер, на котором находятся последние изменения
Timur
тригер для gitlab-ci может послужить не только новый commit в ветку
Alexander
в принципе, это скорее test-сервер
Timur
некий сервер, на котором находятся последние изменения
вам необходимо в gitlab-ci задекларировать все так называемые стейджи и джобы, чтобы при определенных условиях, код деплоился куда надо
Timur
в прод, предпрод, стейдж и тд
Timur
без опыта вам будет очень тяжело, если учесть, что сборка у вас вызывает проблемы
Evgeniy
я бы предложил нанять специалиста