Gostaria de executar várias instâncias docker-android no docker swarm. Mas elas falham:
ERROR | x86 emulation currently requires hardware acceleration!
https://developer.android.com/studio/run/emulator-acceleration#vm-linux
CPU acceleration status: /dev/kvm is not found: VT disabled in BIOS or KVM kernel module not loaded
Meu nó suporta kvm e roda diretamente no nó com docker compose quando adicionado privileged: true
funciona bem.
Mas o docker swarm não suporta o modo privilegiado!
Eles adicionaram cap_add
suporte recentemente no swarm, então tentei adicionar todos os caps disponíveis, mas nenhum deles habilita o kvm dentro do contêiner.
Os dispositivos também não são suportados no modo swarm!
devices:
- "/dev/kvm:/dev/kvm"
Eu sei sobre essa solução alternativa para o modo privilégio, mas quero usar os limites de recursos de implantação para selecionar nós automaticamente com base na memória.
Preciso de uma solução rápido, então vou abrir uma recompensa.
Estou aberto a qualquer hacky way ou algo como docker forks que suportem isso
Uma solução alternativa seria implantar https://github.com/allfro/device-mapping-manager e então apenas montar
/dev/kvm
e deixar o gerenciador corrigir os cgroups automaticamenteA recompensa ainda estará aberta para uma solução melhor