Сборка Docker зависает по команде

Было задано несколько вопросов , но ни решения, ни предложения не работают для меня. Я использую докер manjarolinux. Образ устанавливает большую часть материала в файле докеров:


FROM manjarolinux/base

RUN pacman-mirrors -g
RUN pacman -Syy
RUN rm -fr /etc/pacman.d/gnupg 
RUN pacman-key --init 
RUN pacman-key --populate archlinux
RUN pacman-key --populate manjaro
# RUN pacman-key --refresh-keys
RUN pacman -Syyu --noconfirm
RUN pacman -S --noconfirm gnupg
RUN pacman -Fyy --noconfirm

RUN pacman -Sy --noconfirm vim git gzip yay # this line 
RUN pacman -Sy --noconfirm sudo fakeroot make

RUN pacman -Sy --noconfirm gcc clang 

RUN groupadd sudo wheel
RUN useradd -m -d /home/manjarouser -s /bin/zsh -g sudo wheel manjarouser

USER manjarouser

Однако после строки, отмеченной this line, сборка просто зависает:

Просто не используйте buildkit. Это происходит только при использовании buildkit, см. github.com/moby/buildkit/issues/1267

Braiam 25.12.2020 15:43

@Braiam, я не использую buildkit.

kesarling He-Him 25.12.2020 16:00

Запустите сборку с помощью DOCKER_BUILDKIT=0, вы увидите, что этого не происходит.

Braiam 25.12.2020 16:05

@ Брайам. если вы имели в виду DOCKER_BUILDKIT=0 docker build -t cpp-docker ., то он как-то не работает. Возможно, я что-то делаю не так?

kesarling He-Him 25.12.2020 16:09

У меня все работало нормально, даже с buildkit, вплоть до шага groupadd. Предположение, что что-то не так с хост-средой. (дисковое пространство? поврежденный базовый образ? сеть?)

BMitch 25.12.2020 23:05
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
5
730
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

@ d4rk4ng31, мой пользовательский док-контейнер Archlinux делал то же самое в процессе сборки. Я не смог определить точную причину, но она возникает из-за хука после транзакции в systemd (/usr/bin/systemd-tmpfiles --create). Если бы вы запустили базовый контейнер с помощью docker run -it --rm manjarolinux/base bash и выполнили эту команду, он бы повесил ваш контейнер.

В моем случае это произошло потому, что я использовал archlinux/base, который сейчас устарел. Простое изменение на следующее исправило мою проблему:

FROM archlinux

Я хотел бы проверить, существует ли аналогичная проблема устаревания с Manjaro.

Значит, мне следует переключиться на FROM manjarolinux?

kesarling He-Him 15.01.2021 05:51

Другие вопросы по теме