Ich folge diesem Tutorial: https://medium.com/towards-data-science/number-plate-detection-with-supervisely-and-tensorflow-part-1-e84c74d4382c
und sie benutzen Docker. Als ich versuchte, Docker auszuführen (im Skript run.sh):
docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash
Ich habe den Fehler bekommen:
docker: invalid reference format.
Ich habe 2 Stunden verbracht und kann nicht wirklich verstehen, was los ist. Jede Idee wirklich geschätzt.
docker run -p 8888:8888 -v "`pwd`/../src":/src -v "`pwd`/../data":/data -w /src --rm -it supervisely_anpr bash
--rm
und-it
dazwischenrun
und den Bildnamen verschieben . Das erklärt die Fehlermeldung jedoch nicht. Haben Sie überprüft, ob die Bildnamenzeichen keine spezielle Codierung oder Großbuchstaben haben? Das Kopieren und Einfügen aus Ihrem Snippet funktioniert für mich, währenddocker run --rm foo! bash
der gleiche Fehler wie bei Ihnen gedruckt wird."$(pwd)"
(moderne Form von"`pwd`"
). Ihr Befehl wirddocker run -p 8888:8888 -v "$(pwd)"/../src:/src -v "$(pwd)"/../data:/data -w /src supervisely_anpr --rm -it bash
.Antworten:
In Powershell solltest du
${pwd}
vs.$(pwd)
quelle
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
Was ist los mit meinem Befehl? Es gibt auch den gleichen Fehler.Das erste Argument nach dem "Ausführen", das kein Flag oder Parameter für ein Flag ist, wird als Bildname analysiert. Wenn diese Analyse fehlschlägt, wird angezeigt, dass das Referenzformat, auch bekannt als Bildname (kann jedoch eine Bild-ID, ein angeheftetes Bild oder eine andere Syntax sein), ungültig ist. In Ihrem Befehl:
Der Bildname "Supervisely_anpr" ist gültig, daher müssen Sie im Befehl früher nachsehen. In diesem Fall ist der Fehler höchstwahrscheinlich auf die
pwd
Ausgabe eines Pfads mit einem Leerzeichen zurückzuführen. Alles nach dem Leerzeichen ist kein Parameter mehr-v
und Docker versucht, es als Bildnamen zu analysieren. Die Korrektur besteht darin, die Volumenparameter anzugeben, wenn Sie nicht garantieren können, dass sie frei von Leerzeichen oder anderen Sonderzeichen sind.Wenn Sie dies tun, wird der nächste Fehler "ausführbare Datei nicht gefunden" angezeigt. Alles nach dem Bildnamen wird als Befehl zum Ausführen im Container analysiert. In Ihrem Fall wird versucht, den Befehl auszuführen, der
--rm -it bash
mit ziemlicher Sicherheit fehlschlägt, da er--rm
in Ihrem Image nicht als Binärdatei vorhanden ist. Sie müssen die Parameter neu anordnen, um dies zu beheben:Weitere Informationen zu diesen beiden Fehlern und Ursachen finden Sie in meinen Folien hier: https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29
quelle
# !/bin/bash
(beachte den Abstand zwischen#
und!
bis#!/bin/bash
und dann denEnd of Line Sequence
vonCRLF
bisLF
. Das war alles, was ich getan habe. Danke @BMitch für das Teilen der Folien.Ich hatte das gleiche Problem, als ich
copy-pasted
den Befehl. Stattdessen hat es funktioniert, als ich den gesamten Befehl eingegeben habe!Viel Glück...
quelle
--name
eingefügt,-
weil der Editor es automatisch geändert hat. Danke, du hast mir Zeit gespart.Ich hatte ein ähnliches Problem. Das Problem, das ich hatte, war, dass
$(pwd)
dort ein Platz war, an dem der Docker weglief.quelle
Ich bin auf dieses Problem gestoßen, als ich keine Umgebungsvariable festgelegt hatte.
repo
undimage_name
wurden definiert, abertag
nicht.Dies führte zu
docker push repo/image_name:
.Welches warf die
docker: invalid reference format.
quelle
Gefunden, dass mit
docker-compose config
gemeldet, was das Problem war.In meinem Fall eine überschriebene Erstellungsdatei mit einem Eintrag, der nichts überschrieb .
quelle
Dies geschieht auch, wenn Sie in der Produktion Entwicklungs-Docker-Kompositionen wie die folgenden verwenden. Sie möchten keine Bilder in der Produktion erstellen, da dies die Ideologie der Container bricht. Wir sollten Images bereitstellen:
Ändern Sie dies, um das erstellte Image zu verwenden:
quelle