Je suis ce tutoriel: https://medium.com/towards-data-science/number-plate-detection-with-supervately-and-tensorflow-part-1-e84c74d4382c
et ils utilisent docker. Quand j'ai essayé d'exécuter docker (dans le script run.sh):
docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash
J'ai eu l'erreur:
docker: invalid reference format.
J'ai passé 2 heures et je ne comprends pas vraiment ce qui ne va pas. Toute idée vraiment appréciée.
docker run -p 8888:8888 -v "`pwd`/../src":/src -v "`pwd`/../data":/data -w /src --rm -it supervisely_anpr bash
--rm
et-it
entrerun
et le nom de l'image. Cela n'expliquera cependant pas le message d'erreur. Avez-vous vérifié si les caractères du nom de l'image n'ont pas d'encodage spécial ou de majuscules? Copier et coller à partir de votre extrait dedocker run --rm foo! bash
code fonctionne pour moi, tout en imprimant la même erreur que la vôtre."$(pwd)"
(forme moderne de"`pwd`"
). Votre commande devientdocker run -p 8888:8888 -v "$(pwd)"/../src:/src -v "$(pwd)"/../data:/data -w /src supervisely_anpr --rm -it bash
.Réponses:
Dans PowerShell, vous devez utiliser
${pwd}
vs$(pwd)
la source
docker run --rm -ti --name zalenium -p 4444:4444 -p 5555:5555 \ -e SAUCE_USERNAME -e SAUCE_ACCESS_KEY \ -v /tmp/videos:/home/seluser/videos \ -v /var/run/docker.sock:/var/run/docker.sock \ dosel/zalenium start --sauceLabsEnabled true
quel est le problème avec ma commande? Cela donne également la même erreur.Le premier argument après le "run" qui n'est pas un indicateur ou un paramètre d'un indicateur est analysé comme un nom d'image. Lorsque cette analyse échoue, elle vous indique que le format de référence, c'est-à-dire le nom de l'image (mais qui peut être un identifiant d'image, une image épinglée ou une autre syntaxe) n'est pas valide. Dans votre commande:
Le nom de l'image "supervately_anpr" est valide, vous devez donc regarder plus tôt dans la commande. Dans ce cas, l'erreur est probablement
pwd
due à la sortie d'un chemin avec un espace. Tout ce qui se trouve après l'espace n'est plus un paramètre de-v
et docker essaie de l'analyser en tant que nom de l'image. Le correctif consiste à citer les paramètres de volume lorsque vous ne pouvez pas garantir qu'il est exempt d'espaces ou d'autres caractères spéciaux.Lorsque vous faites cela, vous rencontrerez l'erreur suivante, "exécutable introuvable". Tout ce qui suit le nom de l'image est analysé en tant que commande à exécuter à l'intérieur du conteneur. Dans votre cas, il essaiera d'exécuter la commande
--rm -it bash
qui échouera presque certainement car--rm
n'existera pas en tant que binaire à l'intérieur de votre image. Vous devez réorganiser les paramètres pour résoudre ce problème:J'ai plus de détails sur ces deux erreurs et causes dans mes diapositives ici: https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29
la source
# !/bin/bash
(notez l'espace entre#
et!
à#!/bin/bash
, puis leEnd of Line Sequence
deCRLF
àLF
. C'est tout ce que j'ai fait. Merci @BMitch pour le partage des diapositives.J'ai eu le même problème lorsque j'ai
copy-pasted
la commande. Au lieu de cela, lorsque j'ai tapé la commande entière, cela a fonctionné!Bonne chance...
la source
--name
collé en-
raison du changement automatique de l'éditeur. Merci d'avoir sauvé mon temps.J'avais un problème similaire. Le problème que j'avais était d'avoir
$(pwd)
un espace là-dedans qui jetait le docker en fuite.la source
J'ai rencontré ce problème alors que je n'avais pas de jeu de variables d'environnement.
repo
etimage_name
ont été définis maistag
ne l'étaient pas.Cela a abouti
docker push repo/image_name:
.Ce qui a jeté le
docker: invalid reference format.
la source
Trouvé que l'utilisation a
docker-compose config
signalé quel était le problème.Dans mon cas, un fichier de composition de remplacement avec une entrée qui ne remplaçait rien .
la source
Cela se produit également lorsque vous utilisez la composition du docker de développement comme ci-dessous, en production. Vous ne voulez pas créer d'images en production car cela brise l'idéologie des conteneurs. Nous devrions déployer des images:
Modifiez cela pour utiliser l'image construite:
la source