У меня есть докер-контейнер с очень простой версией debian stretch. при этом мне сначала нужно установить systemd извне. Для этого у меня есть док-контейнер, который запускает установку, затем я фиксирую его в образе, а затем запускаю systemd из этого образа. Когда я сталкиваюсь с контейнером, machinectl нигде в файловой системе не обнаруживается, а обработанный файл не работает. Мне нужно установить какой-то конкретный пакет? Или из-за того, что я с самого начала нахожусь в контейнере, машинная обработка недоступна? Я понимаю, что контейнеры в контейнерах не одобряются, но цель этого контейнера - запускать тесты, взаимодействующие с systemd-machined.
Действия по воспроизведению:
docker run --privileged --cidfile=/tmp/cidfile debian:stretch bash -c 'apt-get update && apt-get install -y build-essential git dbus libsystemd-dev libpam-systemd'
docker commit `cat /tmp/cidfile` deb-machined-test
rm /tmp/cidfile
docker run -d --cidfile=/tmp/cidfile --privileged deb-machined-test /bin/systemd --system
Оказывается, systemd-machined находится в отдельном пакете от основного пакета systemd. Чтобы установить systemd-machined на Debian Stretch, вам нужно запустить apt-get install -y systemd-container
.