Estoy siguiendo este tutorial: https://medium.com/towards-data-science/number-plate-detection-with-supervisely-and-tensorflow-part-1-e84c74d4382c
y usan Docker. Cuando intenté ejecutar Docker (dentro del script run.sh):
docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash
Me sale el error:
docker: invalid reference format.
Pasé 2 horas y realmente no puedo entender qué pasa. Cualquier idea muy apreciada.
docker run -p 8888:8888 -v "`pwd`/../src":/src -v "`pwd`/../data":/data -w /src --rm -it supervisely_anpr bash
--rm
y-it
entrerun
el nombre de la imagen. Sin embargo, eso no explicará el mensaje de error. ¿Verificó si los caracteres del nombre de la imagen no tienen ninguna codificación especial o mayúsculas? Copiar y pegar de su fragmento funciona para mí, mientras quedocker run --rm foo! bash
imprime el mismo error que el suyo."$(pwd)"
(forma moderna de"`pwd`"
). Tu comando se convierte endocker run -p 8888:8888 -v "$(pwd)"/../src:/src -v "$(pwd)"/../data:/data -w /src supervisely_anpr --rm -it bash
.Respuestas:
En powershell deberías usar
${pwd}
vs$(pwd)
fuente
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
¿Qué pasa con mi comando? También está dando el mismo error.El primer argumento después de "ejecutar" que no es un indicador o parámetro de un indicador se analiza como un nombre de imagen. Cuando ese análisis falla, le dice que el formato de referencia, también conocido como el nombre de la imagen (pero podría ser una identificación de imagen, una imagen fija u otra sintaxis) no es válido. En tu mando:
El nombre de la imagen "supervisely_anpr" es válido, por lo que debe buscar antes en el comando. En este caso, lo más probable es que el error se
pwd
deba a la salida de una ruta con un espacio. Todo lo que aparece después del espacio ya no es un parámetro-v
y la ventana acoplable intenta analizarlo como el nombre de la imagen. La solución es citar los parámetros de volumen cuando no puede garantizar que esté libre de espacios u otros caracteres especiales.Cuando lo haga, encontrará el siguiente error, "ejecutable no encontrado". Todo lo que sigue al nombre de la imagen se analiza como el comando para ejecutarse dentro del contenedor. En su caso, intentará ejecutar el comando
--rm -it bash
que casi con seguridad fallará ya--rm
que no existirá como un binario dentro de su imagen. Necesita reordenar los parámetros para resolver eso:Tengo algunos detalles más sobre estos dos errores y causas en mis diapositivas aquí: https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29
fuente
# !/bin/bash
(observe el espacio entre#
y!
a#!/bin/bash
y luegoEnd of Line Sequence
deCRLF
aLF
. Eso fue todo lo que hice. Gracias @BMitch por compartir las diapositivas.Tuve el mismo problema cuando di
copy-pasted
el comando. En cambio, cuando escribí el comando completo, ¡funcionó!Buena suerte...
fuente
--name
pegó-
debido a que el editor lo cambió automáticamente. Gracias, me salvaste el tiempo.Tuve un problema similar. El problema que estaba teniendo era que
$(pwd)
tenía un espacio allí que arrojaba la ventana acoplable.fuente
Me encontré con este problema cuando no tenía un conjunto de variables de entorno.
repo
yimage_name
se definieron perotag
no lo fueron.Esto resultó en
docker push repo/image_name:
.Que arrojó el
docker: invalid reference format.
fuente
Descubrí que el uso
docker-compose config
informó cuál era el problema.En mi caso, un archivo de redacción de anulación con una entrada que no anulaba nada .
fuente
Esto también sucede cuando usa la ventana acoplable de desarrollo como la siguiente, en producción. No desea crear imágenes en producción, ya que eso rompe la ideología de los contenedores. Deberíamos implementar imágenes:
Cambie eso para usar la imagen construida:
fuente