2017-10-19 3 views
1

J'ai trois fichiers .sh que je cours pour générer et exécuter des images de docker. En date d'hier, je n'arrive pas à en créer de nouveaux qui fonctionneront. C'est bizarre parce que même si je copie exactement ceux qui fonctionnent, ça ne marche toujours pas.Les fichiers shell ne peuvent pas utiliser la correction de docker

Je peux exécuter les lignes dans le script shell dans un terminal et elles fonctionneront. Je ne sais pas comment ou pourquoi cela ne fonctionne pas.

Edit: Je peux exécuter les fichiers, mais ils cracher quelque chose comme

Error response from daemon: No such container: foo-container 

ce qui est faux puisque je peux voir le récipient avec docker ps

Exemple:

Ceci est un vieux script qui fonctionne

#! /bin/bash 
docker stop cb-server 
docker rm cb-server 
docker rmi couchbase.server.container 
docker build -t couchbase.server.container . 

Mais si je fais une nouvelle avec le même code, et l'exécuter, je reçois ceci:

Error response from daemon: No such container: cb-server 
Error response from daemon: No such container: cb-server 
Error response from daemon: invalid reference format 
+0

Pouvez-vous partager l'un des scripts? –

+0

Là vous allez, je vais un peu fou à ce sujet maintenant – Cilvet

+0

Vous obtiendrez le non tel conteneur d'erreur lorsque le conteneur est déjà arrêté et supprimé. Exécutez 'docker ps -a | grep cb-server' et 'docker images | grep couchbase' et voir si soit retourner une réponse –

Répondre

0

sont probablement causés Les deux réponses « pas de porte-conteneurs » car le conteneur et les images n'existe pas votre machine (par exemple vous les avez déjà arrêtés et vous les avez supprimés)

Vous pouvez peut-être emballer ces commandes avec une condition avant de tenter de les exécuter.

https://stackoverflow.com/a/38576401/2892779

Le format de référence non valide peut être ceci:

https://github.com/moby/moby/issues/25599

caractères seulement des minuscules sont autorisés pour les noms des images (je ne se rien dans votre script affiché avec ce problème, mais vous avez dit que vous en aviez 3 en supposant possiblement l'un des autres)

+1

Merci pour votre réponse. le conteneur et les images qui n'existaient pas sur ma machine étaient la première chose à laquelle je pensais, mais ils existent, docker les montre clairement avec docker ps et ils peuvent être trouvés par les autres scripts (plus anciens). J'ai peur que cela puisse avoir quelque chose à voir avec les permissions. – Cilvet

+0

Est-ce que vous exécutez sudo pour des commandes? Quel système d'exploitation et quelle version de docker sur votre hôte? Avez-vous essayé de redémarrer le démon docker? Les scripts sont-ils sur les mêmes machines? Les mêmes dossiers? Que faire si vous renommez l'ancien script? Pouvez-vous lancer 'last -al' dans le dossier où les deux scripts existent afin que les permissions puissent être vérifiées? Avez-vous exécuté 'chmod + x' sur le script? Aussi, je viens de le remarquer mais votre script bash devrait supprimer l'espace entre le # et le! –

+0

Grattez le commentaire sur la ligne Shebang. Je naviguais sur mon téléphone plus tôt ce matin et j'ai dû le lire incorrectement. –