docker:shell脚本中无效的引用格式 [英] docker: invalid reference format in shell script

查看:232
本文介绍了docker:shell脚本中无效的引用格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个Shell脚本来运行docker容器并正在挣扎.我的脚本是这样的:

I'm trying to create a shell script to run a docker container and am struggling. My script is like this:

#!/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).

Even if I do bash run.sh cd:0.0.50 it still fails (echo $1 results in cd2:0.0.50).

如果我从命令行运行docker run -it --rm -p 8080:8080 cd2:0.0.50,它将起作用...

If I run docker run -it --rm -p 8080:8080 cd2:0.0.50 from the command line it works...

任何人都可以帮忙吗?

推荐答案

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

The image name should be after the -it parameter and so re arrange your run command.

这篇关于docker:shell脚本中无效的引用格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆