вообще использовать docker вместо werf для сборки?
Docker - в смысле использовать нативный докер для того, чтобы собрать образ, с использованием послойного кэша. А затем уже передавать этот образ в регистри и делать его доставку через werf.
C buildah так и не смог побороть проблему с UID, GID. WARN[0000] running newgidmap: exit status 1: newgidmap: write to gid_map failed: Invalid argument WARN[0000] Falling back to single mapping WARN[0000] Error running newuidmap: exit status 1: newuidmap: write to uid_map failed: Invalid argument WARN[0000] Falling back to single mapping panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x31040a3]
Так можно, но кеширование тогда там будет стандартное docker'овское вместо нашего
Так, а ваше то можно только, с использованием buildah? Как я понял.
в контейнере запускаете? Что за дистрибутив/образ?
раннер host - Linux runner6 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux запуск без контейнера.
Вообще самому сетапить buildah на хосте дело не всегда простое, поэтому мы обычно рекомендуем использовать заранее подготовленные нами контейнеры с buildah'ом, запуская сборку в контейнере. Не хотите? И раз используете buildah на хосте, то следуете этой инструкции?
Да, пытался по инструкции. Попробую из образа запустить.
Я правильно понимаю, что образ registry.werf.io/werf/werf:1.2-stable из инструкции содержит в себе Билдах?
он не содержит buildah cli (и не должен), но он содержит всё подготовленное для того, чтобы werf работал в buildah-режиме (в таком режиме buildah вкомпилен в werf как библиотека)
но я в примере на https://werf.io/documentation/v1.2/index.html?usage=ci&ci=gitlabCiCd&runnerType=dockerRunner&os=linux&buildBackend=buildah&projectType=bestPractice&sharedCICD=no&repoType=application. Не увидел WERF_BUILDAH_MODE: auto. Как сборка узнаёт, что надо использовать buildah?
Да, этого флага вообще нет в доке
Так этот флаг надо засеттить?
ну там же написано вроде всё в инстркции
WERF_BUILDAH_MODE=auto зашит в верфовых образах, поэтому если используете docker-образы в CI, выставлять его не надо
есть, просто у нас сейчас раздел Install and run не индексируется, но мы это скоро поправим
Вот на базе образа получаю ту же ошибку. werf converge Version: v1.2.267 Using werf config render file: /tmp/werf-config-render-3683024920 ┌ Concurrent build plan (no more than 5 images at the same time) │ Set #0: │ - ⛵ image apiapp/stage/python │ │ Set #1: │ - ⛵ image apiapp/stage/python-build-stage │ │ Set #2: │ - ⛵ image apiapp └ Concurrent build plan (no more than 5 images at the same time) panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x31040a3] goroutine 74 [running]: github.com/werf/werf/pkg/build.(*BuildPhase).AfterImageStages(0xc000319b40?, {0x4056f07?, 0xc000e5c060?}, 0xc000e54480) /git/pkg/build/build_phase.go:571 +0x63 github.com/werf/werf/pkg/build.(*Conveyor).doImage.func2() /git/pkg/build/conveyor.go:729 +0x489 github.com/werf/logboek/internal/stream.(*Stream).logProcess.func1() /go/pkg/mod/github.com/werf/logboek@v0.5.5/internal/stream/process.go:150 +0x1b github.com/werf/logboek/internal/stream.(*Stream).logProcess(0xc000e5b650, {0xc001128c20?, 0x38?}, 0xc000e5c0c0, 0xc0012f5400) /go/pkg/mod/github.com/werf/logboek@v0.5.5/internal/stream/process.go:157 +0x1cf github.com/werf/logboek/internal/stream.(*LogProcess).DoError(0xc0012f53c0, 0xc0012f5400) /go/pkg/mod/github.com/werf/logboek@v0.5.5/internal/stream/process_types.go:201 +0xa5 github.com/werf/werf/pkg/build.(*Conveyor).doImage(0x0?, {0x4a0bee8?, 0xc000e5c060}, 0xc000e54480, {0xc00103dc80, 0x1, 0x1}) /git/pkg/build/conveyor.go:702 +0x198 github.com/werf/werf/pkg/build.(*Conveyor).doImagesInParallel.func3({0x4a0bee8, 0xc000e5c060}, 0xc000fbaf38?) /git/pkg/build/conveyor.go:657 +0x215 github.com/werf/werf/pkg/util/parallel.DoTasks.func1() /git/pkg/util/parallel/parallel.go:83 +0x304 created by github.com/werf/werf/pkg/util/parallel.DoTasks /git/pkg/util/parallel/parallel.go:76 +0x25c Cleaning up project directory and file based variables 00:01 ERROR: Job failed: exit status 1
А тут решение такое: https://t.me/werf_ru/35059
Обсуждают сегодня