Le assembly de nginx conf en tant que volume de menu fixe provoque une erreur système boot2docker

J’essaie d’exécuter nginx dans un conteneur de docker tout en montant la configuration et les fichiers html statiques pour qu’ils servent. Des choses très simples, à ma connaissance, mais je continue à avoir une erreur à propos du répertoire n’étant pas un répertoire?

Je lance cet exemple sur mon Mac en utilisant la dernière version de Boot2Docker.

J’ai la structure de dossiers suivante:

% tree ~/Projects/Docker/nginx-example . ├── html │  └── test.html └── nginx.conf 1 directory, 2 files 

Le contenu du nginx.conf est le suivant:

 http { server { listen *:80; # Listen for incoming connections from any interface on port 80 server_name ""; # Don't worry if "Host" HTTP Header is empty or not set root /usr/share/nginx/html; # serve static files from here } } 

J’essaie d’exécuter le conteneur (depuis le répertoire ~/Projects/Docker/nginx-example ) comme ceci:

 docker run --name nginx-container \ -v /Users/M/Projects/Docker/nginx-example/html:/usr/share/nginx/html:ro \ -v /Users/M/Projects/Docker/nginx-example/nginx.conf:/etc/nginx:ro \ -P -d nginx 

Au départ, j’avais essayé quelque chose comme -v $(pwd)/html:/usr/share/nginx/html:ro pour raccourcir la commande, mais quand cela ne fonctionnait pas, je pensais être explicite au cas où une question de sous-shell funky je n’étais pas au courant de

Et j’obtiens la sortie suivante

 fc41205914098d236893a3b4e20fa89703567c666ec1ff29f123215dfbef7163 Error response from daemon: Cannot start container fc41205914098d236893a3b4e20fa89703567c666ec1ff29f123215dfbef7163: [8] System error: not a directory 

Est-ce que quelqu’un a une idée de ce qui me manque?

Mac Volume Boot2Docker Volume?

Je suis conscient qu’il y a un problème avec le assembly de volumes dans des conteneurs lors de l’utilisation de Boot2Docker (bien que je sois amené à croire que cela a été résolu depuis longtemps)

C’est-à-dire monter le volume sur l’image Docker sur OSX

Mais j’ai suivi les instructions, peu importe, et cela n’a toujours pas fonctionné

-v /Users/M/Projects/Docker/nginx-example/nginx.conf:/etc/nginx:ro

vous essayez de monter un fichier dans un répertoire – changez cela en:

-v /Users/M/Projects/Docker/nginx-example/nginx.conf:/etc/nginx/nginx.conf:ro et ça devrait aller. Jetez un coup d’œil aux exemples de Docker Volumes Docs

De plus, pwd devrait fonctionner dans le chemin. Le shell développe ceci avant que la commande docker ne soit exécutée, juste comme les maths et les parenthèses intérieures, les sous-commandes internes sont exécutées en premier.