Ранее я писал статью о том, как запустить snap под Ubuntu 18.04 Bionic, однако сейчас всё усложнилось и потребовалось искать и изучать актуальную информацию.
На данный момент, актуальный список действий таков:
- Подгружаем модуль fuse на хосте (modprobe fuse), делаем его автозагрузку;
- В конфигурационный файл конейнера (/var/lib/lxc/containername/config) прописываем следующие параметры:
- lxc.mount.entry = /dev/fuse dev/fuse none bind,create=file,optional
- lxc.apparmor.profile = unconfined
- lxc.cap.drop =
- lxc.cap.drop = mac_override sys_time sys_module sys_rawio
- Запускаем контейнер, устанавливаем snap: apt install snapd -y
- Проверяем работу: snap install hello-world и получаем ошибки
Выполняем snap install hello-world ещё раз и магическим образом всё начинает работать.
Почему snap такой кривой и требует гору костылей — вопрос остаётся открытым.
Кстати говоря, под LXD всё работает «из коробки», то есть просто создаём контейнер lxc launch images:ubuntu/jammy test и всё в нём сразу запускается.