Docker: неверный формат ссылки в сценарии оболочки
Я пытаюсь создать сценарий оболочки для запуска контейнера Docker, и я борюсь. Мой скрипт такой:
#!/bin/bash
if [ "$1" == "" ]; then
echo "Usage > run.sh IMAGE NAME"
echo
echo "i.e. ./build.sh cd2:0.0.49"
exit
fi
echo $1
docker run -it --rm \
-e NODE_PATH='./src'\
-e NODE_HOST='0.0.0.0'\
-e NODE_ENV='production'\
-e DOCKER=true\
-e PORT='8080'\
-e STAGING=true\
-e SENDGRID_API_KEY='<redacted>'\
-p 8080:8080 $1
Когда я бегу: bash run.sh cd2:0.0.50
Я получил: docker: invalid reference format: repository name must be lowercase.
Даже если я сделаю bash run.sh cd:0.0.50
все равно не получается (echo $1
результаты в cd2:0.0.50
).
Если я бегу docker run -it --rm -p 8080:8080 cd2:0.0.50
из командной строки это работает...
Кто-нибудь может помочь?
1 ответ
Решение
docker run \
-e NODE_PATH='./src' \
-e NODE_HOST='0.0.0.0' \
-e NODE_ENV='production' \
-e DOCKER=true \
-e PORT='8080' \
-e STAGING=true \
-e SENDGRID_API_KEY='<redacted>' \
-p 8080:8080 --rm -it $1
Имя изображения должно быть после параметра -it, поэтому переставьте команду запуска.