Alex
how to use environment variables in laravel config
Alex
что такой запрос в гугле тебе дает?
Oleg
Привет всем, скажите, как я могу запустить параллельно, скажем, 16 контейнеров? И как можно адекватно сделать это в женикнсе?
Alexander
Вы говорите о Jenkins?
Oleg
да
Oleg
swarm, но лучше полностью сформулируй для чего хочешь
Есть E2E тесты, 16 штук, нужно запустить их параллельно внутри одного джоба в дженкинсе... Сижу голову ломаю, что да как лучше сделать
Anton
как правильнее всего после поднятия контейнеров установить chmod на папку внутри контейнера?
Anton
RUN chmod -Rf 777 . можено в докерфайле добавить =)
почему то ругается что no such file or directory
Oleg
почему то ругается что no such file or directory
https://stackoverflow.com/questions/45972608/how-to-give-folder-permissions-inside-a-docker-container-folder
Anton
https://stackoverflow.com/questions/45972608/how-to-give-folder-permissions-inside-a-docker-container-folder
проблема в том что я ничего не копирую. просто volume с хоста подключается
Anton
видимо в этом дело
Эмин
Если я не ошибаюсь то volume подключается в момент старта. И тянет за собой ещё и пермишены с хоста
Эмин
В докер файле вы можете только регламентировать что такой volume возможен
Сергей
Подскажите как можно настроить автоматическое обновление образа и при этом обновление контейнера?) какие есть инструменты или связки инструментов?
Vitaly
Вы из :latest деплоите на прод?
да, это я
Сергей
Vitaly
Я к тому, чтобы уточнить кейс) Так то, настраиваешь авто-деплой в вашей CD системе, что используете для ручных деплоев, например, по ночам)). Или авто-деплой после загрузки образа в регистри
Vitaly
Все точно также, как вы делаете вручную - - пулл образа с форсем, - перезапуск контейнера из этого образа Только по событию (загрузка в регистри)
Vitaly
Контейнер - низкий уровень, он даёт интерфейсы, а как за них дергать - у всех свои хотелки)
Сергей
Контейнер - низкий уровень, он даёт интерфейсы, а как за них дергать - у всех свои хотелки)
не могу понять как определить событие загрузки в регистри и проделать пул и перезапуск контейнера(
Vitaly
не могу понять как определить событие загрузки в регистри и проделать пул и перезапуск контейнера(
А как ты билдишь и загружаешь в регистри? На локалхосте, или в Дженкинсе.?
да, это я
Обоснуй
А что обосновывать? Ты готов катить на прод неизвестную версию приложения из реджистри? Ну, как напорешься — расскажи.
да, это я
тесты не слышал?
При чём тут тесты?
Vitaly
Drone.io ну почти тоже самое
Не работал с ним, но поищи триггеры на запуск сборки (после завершения другой), или веб-хуком дёрнуть другую сборку
Evgenii
При чём тут тесты?
Вы в компании не тестируете?
Сергей
При чём тут тесты?
При том что ты цепляешь свой образ, тестируешь и льёшь)
Vitaly
Тесты в разные моменты могут выполнятся. Вот разраб прислал комит, собрался , улетел в регистри, запустились тесты дальше в пайплайне, и упали. При этом образ уже в регистри, и параллельно кто-то выкатил на прод это
Vitaly
Или нужно уточнить что разные репы для дева и прода
да, это я
Я про то, что лить конкретный имедж намного проще, чем подкладывать себе потенциальные грабли. Тесты — оно хорошо, но по закону Мерфи то, что может сломаться, сломается, и лениться, указывая :latest довольно глупое занятие.
Vitaly
Когда маленькая команда, возможно
Evgenii
Или нужно уточнить что разные репы для дева и прода
Не разные, тестится бранч, который уйдёт в мастер, проверили всё ок, смерджилм, собрали latest, разлили
Vitaly
После мерджа тестировать то надо снова, потому что пока тестили, кто-то влить уже мог другой бранч. Неконфликтующие по Гиту, но ломающие друг друга изменения. +Интеграционное тестирование с другими системами
Vitaly
Ну если команда одновременно делает только 1фича-ветку, это тоже доп.условие
Vitaly
@friendly_zika интересно послушать про флоу, CI/CD и мониторинг, тестирование, как все связано вместе
да, это я
У меня 20 микросервисов, разные команды и деплой каждый день, тут нельзя договориться за версию, только мастер - совместимость и latest
Мда. В том же дженкинсе есть такая штука, как переменные окружения. Собрал app:$BUILD_NUMBER, выкатил app:$BUILD_NUMBER. Это лишь один из способов.
Evgenii
Изменения попадают в мастер атомарно и льётся состояние мастера проверенное разумеется. Артефакт latest проверяется не в проде разумеется и льётся в прод АРТЕФАКТОМ который прошёл интеграционные
Vitaly
А как отличить артефакт, который с фичей и прошёл тесты, от того что только что собран (новая фича) и ещё не прошел?)
да, это я
Я ничё не понял, какой смысл?
Ну ок, что я могу сказать? Лей дальше лэйтест. Ты попросил обосновать, я обосновал, в дальнейшем споре на тему не вижу смысла, каждый дрочит как он хочет.
Evgenii
@friendly_zika интересно послушать про флоу, CI/CD и мониторинг, тестирование, как все связано вместе
Ты же Site Reliability Engineer, для тебя гугл книжку написал, чё меня слушать
Evgenii
Могу заскринить и у натариуса заверить
Vitaly
Тогда это вручную все, а не автоматически ж?
Evgenii
Автоматически, называется очередь
Сергей
Ребят, вот это я затронул тему) прям горячо стало в чате)
да, это я
Ты не объяснил зачем
Я объяснил. Вот здесь. https://t.me/docker_ru/61532
Evgenii
Давай.
вот у меня продукт целиковый из микросирсов. Команда 1 написала киллерфичу, гдет чёт напишила и собрала твой офигенный app:BUILD_NUMBER33 в своём дженкинсе. Команда 17 тоже должна обновить свой сервис для киллерфичи и им надо забрать сервис команды 1 с последними изменениями, им придётся знать, что это именно BUILD_NUMBER33, откуда им это. блин, знать?
Evgenii
Допустим они даже узнали, что это именно 33 билд в слаке (что конечно никак с автоматизацией не вяжется), что им делать с остальными 5 зависимости от других команд, они даже человека не знают кто там работает именно. А если команда 17 тупит и долго интегрируется с 33 билдом команды 1, тем временем у команды 1 уже 35 билд, им каждый раз в слак писать, поцаны, обновитесь!! ??
Evgenii
А при чём тут команды? Команды пускай latest пулят. Речь-то была о деплое на прод.
все latest пулили пулили, тестили тестили, а выкатывать каждый микросервис будем из BUILD_NUMBERXXX , шо за нах?
да, это я
все latest пулили пулили, тестили тестили, а выкатывать каждый микросервис будем из BUILD_NUMBERXXX , шо за нах?
Коллега, у тебя всё хорошо с логикой? Ещё раз: в процессе разработки можно пулить последнюю версию. На прод и препрод для тестов надо катить фиксированную.
Evgenii
Без обид, просто интересно, Вы давно в профессии?
ты давно дурачок, только без обид?
да, это я
я тебе не коллега, приятель. А выкатывать будем фикс версию всем микросервисам ?
Оно и видно, что не коллега. Да, всем. А что мешает-то? Процесс должен быть одинаков для всех.
Evgenii
Оно и видно, что не коллега. Да, всем. А что мешает-то? Процесс должен быть одинаков для всех.
как это возможно, если сервис 1 деплоится в два раза чаще сервиса 17 ?
Vitaly
Мне больше интересно ещё вот что --- если нашли багу на проде после релиза. что-то упустили и т.п. Откатываться назад - на какую версию?
Evgenii
Мне больше интересно ещё вот что --- если нашли багу на проде после релиза. что-то упустили и т.п. Откатываться назад - на какую версию?
это не автоматический процесс, да и не факт, что будем откатываться, а не хотфиксить. Я не предлагаю отказываться от версий, я лишь о том, что катится на прод, под капотом есть версии и откатиться можно на предыдущую (с явной версией)
да, это я
как это возможно, если сервис 1 деплоится в два раза чаще сервиса 17 ?
Слушай, ты полез в залупу, доказывая, что не надо фиксировать версии приложения в деплое и начал приводить примеры из собственной инфраструктуры, которая явно нетипична. Если человек рулит такой инфрой, он явно не будет задавать такие вопросы. В большинстве случаев делать это нужно, потому что это потенциальная и очень явная точка отказа, а ты занимаешься хернёй, натягивая сову на глобус и пытаясь доказать, что твой конкретно подход правильный. Я тебе уже сказал, что каждый дрочит как он хочет. Не надо подавать дурной пример другим, если у вас сделано через жопу (возможно вынужденно). Если ты готов пойти на риск сломать прод — твоё право. Я нет. На этом пикировку предлагаю завершить.
Evgenii
Слушай, ты полез в залупу, доказывая, что не надо фиксировать версии приложения в деплое и начал приводить примеры из собственной инфраструктуры, которая явно нетипична. Если человек рулит такой инфрой, он явно не будет задавать такие вопросы. В большинстве случаев делать это нужно, потому что это потенциальная и очень явная точка отказа, а ты занимаешься хернёй, натягивая сову на глобус и пытаясь доказать, что твой конкретно подход правильный. Я тебе уже сказал, что каждый дрочит как он хочет. Не надо подавать дурной пример другим, если у вас сделано через жопу (возможно вынужденно). Если ты готов пойти на риск сломать прод — твоё право. Я нет. На этом пикировку предлагаю завершить.
я задал конкретный тебе вопрос, а ты налил воды, ты не прав и твоё решение не работает, я объяснил сообщением выше почему именно, повторюсь - невозможно проставить всем сервисам одну и туже версию, если они деплоятся не одновременно, а в реальной жизни на серьёзном проекте так и есть