172 похожих чатов

Всем привет, может подскажет кто по гитлабу. у меня очень

много проектов, которые запускают параллельные сборки, иногда deploy токены перезаписываются и проект не может выкатить образ в реестр, помогли сборки docker in docker. Но для некоторых проектов нужно запускать команду в опеределенном образе, которому нужна папка git, но в таком случае, даже если делать docker run -v $(pwd):/src, то в последней папке не будет проектов, причем docker build отрабатывает нормально. Можно выкрутиться используя другой раннер и артифакты, но хотелось бы один использовать. Как-то вообще можно смонтировать папку с текущим проектом внутрь другого контейнера, в DinD?

18 ответов

17 просмотров

Можно сделав volume на хосте и монтируя его в оба контейнера

а почему deploy токены перезаписываются? В том же jenkins если серкетом является файл, он каждый раз рандомный создает и сразу удаляет и пофиг что сборки параллельные

Николай-Емашев Автор вопроса
Aleksey Lazarev
Можно сделав volume на хосте и монтируя его в оба ...

тогда получается нужно предварительно копировать код в этот volume. Раннер работает только с папкой /build. А есть пример?

Николай-Емашев Автор вопроса
Dmitry Sergeev 🇺🇦
а почему deploy токены перезаписываются? В том же ...

в /home/gitlab-runner/.docker/config.json - этот файл и перезаписывается. То есть, когда делается запись в раннере docker login -u $TOKEN и тд - то создается новый файл

ох накажут... а по сабжу - артефактов не хватает?

Николай-Емашев Автор вопроса
Aleksey Lazarev
Может опишешь с конкретикой?

shell раннер раньше был. Сейчас на DinD перешел из-за перезаписи токенов, но в нем свои косяки. Можно конечно через какой-нибудь ansible сделать десяток пользователей изолированных, но это ацкие костыли.

Николай Емашев
в /home/gitlab-runner/.docker/config.json - этот ф...

А там нет специального метода для логина в registry. Типо как в jenkins docker.withRegistry("https://example.com", 'secret-credentails-name') { ... } Вот эта штука, создает свой config.json для конкретной сборки

Николай-Емашев Автор вопроса
Антон Сенько
ох накажут... а по сабжу - артефактов не хватает?

артифакт могу генерить через shell раннер только, в DinD такая же проблема - не монтируется папка с проектом, если docker run запускать.

Я все равно не понимаю нафиг тебе динд в этом случае

Я так понимаю, этот вопрос вообще вне плоскости k8s лежит, лучше его задать здесь https://t.me/ru_gitlab И когда сделаете это, то раскройте сеттинг подробнее, потому что ЯННП, как и большинство здесь

Николай Емашев
артифакт могу генерить через shell раннер только, ...

погоди, ну ты же можешь DOCKER_CONFIG делать уникальным для конкретного билда. Тот же jenkins через него скорее всего и делает. Создаешь DOCKER_CONFIG=`mktemp` docker login ... docker build... docker push... rm -f ${DOCKER_CONFIG]

Николай-Емашев Автор вопроса
Dmitry Sergeev 🇺🇦
погоди, ну ты же можешь DOCKER_CONFIG делать уника...

так вроде ж нет. https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2745 Но за совет спасибо, попробую

Николай Емашев
так вроде ж нет. https://gitlab.com/gitlab-org/gi...

Дык там же решение в явном виде написано

Ничерта не понял, нет такого раннера в гитлабе. есть докер-раннер, в него можно докер сокет с хоста прокинуть. Это называется ДИНД ?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта