Skip to content

Docker-образ не собирается на сервере Jenkins: runc can't mask dir /proc/acpi #1752

Description

@sfaqer

С develop #13 (23.09) этап Build v2 падает на первом же RUN (лог #16):

runc run failed: unable to start container process: error during container init: can't mask dir "/proc/acpi": mount src=tmpfs, dst=/proc/acpi, flags=MS_RDONLY, data=nr_blocks=1,nr_inodes=1: invalid argument

Образ собирает buildx-сборщик на драйвере docker-container, то есть шаги запускает runc внутри контейнера moby/buildkit. В #13 этот контейнер создался заново из moby/buildkit:buildx-stable-1, сейчас это v0.32.2 с runc 1.4.3. Начиная с этой версии runc закрывает каталоги в /proc пустым tmpfs с nr_inodes=1, а штатное ядро 5.4 из Ubuntu 20.04 такое монтирование не принимает: opencontainers/runc#5348. В runc это исправлено в 1.5.1, но buildkit с ним пока не вышел, в v0.33.0 тоже 1.4.3. Linux Build и Linux testing на этом же сервере проходят: их контейнеры запускает runc самого docker.

Про Ubuntu 20.04 я сужу только по ошибке, доступа к серверу у меня нет. Проверить можно командой uname -r на хосте (если Jenkins в контейнере, то на хосте, а не в контейнере).

Пока это не починено, evilbeaver/onescript:dev не обновляется с 18.09, а при выпуске из release/latest образ тоже не соберется.

Что можно сделать на сервере:

  • поставить HWE-ядро 5.15 (linux-generic-hwe-20.04) и перезагрузиться. По разбору в runc#5348 в ядрах 5.15+ этой проверки нет, но на HWE я не проверял;
  • обновить ОС до 22.04 или 24.04. У 20.04 закончилась стандартная поддержка, но на сервере еще и сайт;
  • дождаться buildkit с runc 1.5.1+, удалить старый сборщик, и следующая сборка скачает новый образ.

Временный обход в Jenkinsfile — закрепить buildkit v0.30.0 (runc 1.3.5, до регрессии): #1753.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions