docker exec
ne travaille pas pour moi. Si je me connecte à un conteneur en cours d'exécution avec docker exec -it mymachine bash
et courir sh -c "mysql -u root < /tmp/schema.sql"
, Ça marche.
Si je viens de courir docker exec mymachine sh -c "mysql -u root < /tmp/schema.sql"
, il ne donne aucune erreur, mais il ne fait rien. Cela ne me donne pas non plus d'erreur si je cours docker exec mymachine sh -c "mysql -u root < /tmp/i_dont_exist.sql"
.
Comment puis-je réparer ça?
Réponses:
1 pour la réponse № 1essaye ça -
docker exec mymachine "sh -c "mysql -u root < /tmp/schema.sql""
Sinon, l'opérateur "<" sera sélectionné par le shell de la machine hôte et non par le conteneur.
0 pour la réponse № 2
Je soupçonne que le <
L’opérateur tente de s’emparer de votre hôte plutôt que de votre conteneur. Essayez de mettre toute la commande entre guillemets.