среда, 25 сентября 2019 г.

Обход невозможности записи в контейнерах SquashFS (Singularity)

Скачал тут контейнер RabbitMQ (имя образа rabbitmq.simg), пытаюсь запустить кроличий сервер - ан нет, ошибка could_not_write_file (не может писать в лог). Оказалось, что в этом котейнере используется SquashFS - файловая система, допускающая только чтение. 

Чтоб это обойти, используем образ - подложку (overlay). Создадим образ:
singularity image.create rmq-overlay.simg
Теперь будем запускать экземпляр контейнера RabbitMQ, подложив этот наш новый образ (в который писать можно):
singularity instance.start --overlay rmq-overlay.simg rabbitmq.simg rmq1
Здесь rmq1 - имя экземпляра.

После этого запускаем шелл внутри экземпляра
singularity shell instance://rmq1

Теперь вызов rabbitmq-server отрыбатывает нормально, сервер запускается.

Полезные ссылки: 
  • Документация Singularity - страница про overlay [ссылка]
  • Обсуждение на github.io про проблемы с контейнерами squashfs [ссылка]

Комментариев нет: