barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 5 мая 2023 г.

Ubuntu 20.04 + Podman: error "potentially insufficient UIDs or GIDs available in user namespace" when trying to run a container

Проблема

При попытке запустить контейнер с помощью Podman появляется ошибка:

Error: writing blob: adding layer with blob "sha256:...": Error processing tar file(exit status 1): potentially insufficient UIDs or GIDs available in user namespace (requested 110779:100 for /usr/local/lib/node_modules/@stoplight/spectral/node_modules/optionator/CHANGELOG.md): Check /etc/subuid and /etc/subgid: lchown /usr/local/lib/node_modules/@stoplight/spectral/node_modules/optionator/CHANGELOG.md: invalid argument

Причина

На эту тему есть отличная статья https://www.redhat.com/sysadmin/rootless-podman, в двух словах - причина в том, что UID 110779, используемый в docker-образе, не может быть смапплен в хост-ОС из-за того, что он больше, чем 65536.

Решение

Правим на хост-ОС файл /etc/subuid, заменяя для пользователя, из-под которого запускается podman, ограничение 65536 на другое, большее чем UID, фигурирующий в ошибке, например:

aspirinspb:100000:165536

Podman: WARN[0000] "/" is not a shared mount, this could cause issues or missing mounts with rootless containers

Проблема

При старте Podman появляется warning:

WARN[0000] "/" is not a shared mount, this could cause issues or missing mounts with rootless containers

Решение

sudo mount --make-rshared /

(необходимо выполнять после каждого перезапуска ОС либо добавить в какой-то из startup-скриптов) 

WSL2 + Cisco VPN: чиним доступность сети в гостевой ОС

Проблема

Хост-машина с Windows 10 + Cisco AnyConnect VPN, заворачивающим весь траффик в туннель. Под WSL1 в гостевой ОС (Ubuntu 20.04) все ок, но после миграции на WSL2 пропадает есть.

Решение

В моем случае причина была в том, что трафик заворачивался в неверный сетевой интерфейс (не в VPN), и решилась установкой для VPN-интерфейса более высокого значения метрики командой в PowerShell из-под администратора:

Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 6000

(имя интерфейса "Cisco AnyConnect" возможно придется заменить на актуальное имя сетевого интерфейса VPN-соединения). Команду нужно выполнять после каждой перезагрузки хост-машины либо реконнекта VPN.