shell 如何在调用“docker run”时诊断“docker:invalid reference format”?

gab6jxml  于 7个月前  发布在  Shell
关注(0)|答案(1)|浏览(83)

我正在尝试创建一个shell脚本来运行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,它会工作。
有人能帮忙吗?

wmtdaxz3

wmtdaxz31#

图像名称应紧接在-it选项之后。将-it选项移动到末尾:

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

字符串

相关问题