Comment jouer de la musique dans un conteneur docker

Je suis en train de dockerize un texte à la parole demande de partage de code avec d'autres développeurs, cependant la question que je vais avoir droit maintenant, c'est le conteneur docker ne peut pas trouver la carte son sur mon ordinateur hôte.

Lorsque j'essaie de lire un fichier wav dans mon conteneur docker

root@3e9ef1e869ea:/# aplay Alesis-Fusion-Acoustic-Bass-C2.wav
ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:722: audio open error: No such file or directory

Je pense que le principal problème est docker conteneur est pas en mesure d'atteindre la carte son de mon hôte.

Pour l'instant j'ai

  1. J'ai installé alsa-utils et la plupart des alsa dépendances au sein de mon
    conteneur docker.
  2. Ajouté --group-add audio lors de l'exécution de la
    conteneur en spécifiant docker run --group-add audio -t -i
    self/debian /bin/bash

Je ne suis pas sûr si cela est même possible avec docker(je ne suis pas exactement sûr de savoir comment les ressources matérielles comme les cartes son sont partagés avec des conteneurs). J'utilise une debian contenant sur un Mac OS Yosemite hôte.

Serait stackoverflow.com/q/40136606/6309 de l'aide?
Pour Alsa tous vous avez besoin est: --device /dev/snd. Mais si vous utilisez un utilisateur non root, à l'intérieur du conteneur, vous devez donner l'accès à des périphériques audio, afin de le mettre dans votre Dockerfile: RUN usermod -a -G audio USERNAME.
Sur le forum: forums.docker.com/t/how-to-get-sound/36527

OriginalL'auteur Anoop | 2016-12-11