docker:shell脚本中的参考格式无效

我正在尝试创建一个shell脚本来运行一个码头集装箱,我正在挣扎。 我的脚本是这样的:

#!/bin/bash if [ "$1" == "" ]; then echo "Usage > run.sh IMAGE NAME" echo echo "ie ./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它工作…

谁能帮忙?

 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参数之后,因此重新安排您的运行命令。