参数无效" / tensorflow-serving-devel" for" -t, - tag" flag:无效的引用格式

时间:2018-03-19 07:13:12

标签: git docker tensorflow git-clone tensorflow-serving

我正在尝试为像here这样的数据流服务创建一个docker Image。

当我尝试使用所有必需的依赖项(pip依赖项,bazel,grpc)提取docker镜像时 enter image description here

我在这里做错了什么?我相信它适用于除我之外的所有人。 我在Windows 7中使用docker工具箱,这是我第一次使用docker。我不知道这个错误说的是什么

编辑:删除空格后 enter image description here

Docker版本

enter image description here

4 个答案:

答案 0 :(得分:3)

docker build命令中有一个拼写错误:Dockerfile字后面有空格。

正确的命令是:

docker build --pull -t $USER/tensorflow-serving-devel -f tensorflow_serving/tools/docker/Dockerfile.devel .

编辑:

我知道你的问题在哪里。您使用Windows,因此$USER无法解析为用户名。请将其更改为其他内容:

docker build --pull -t user/tensorflow-serving-devel -f tensorflow_serving/tools/docker/Dockerfile.devel .

然后将其与docker run命令一起使用:

docker run --name=tensorflow_container -it user/tensorflow-serving-devel

答案 1 :(得分:2)

问题是$USER正在扩展为空字符串,因为没有环境变量USER

要解决此问题,只需使用您的Dockerhub用户名或任何用户名替换$USER。您也可以将$USER/tensorflow-serving-devel更改为tensorflow-serving-devel。这没关系 因为这只是结果图像的名称。

答案 2 :(得分:0)

在我遇到相同错误的情况下,问题出在图像标签中,同时出现了“ -”和“ _ ”符号的组合。因此,像MMT-6352_-_fix这样的图片标签是无效的,但是像MMT-6352_fixMMT-6352-fix这样的图片标签是有效的。

答案 3 :(得分:0)

在我的例子中,我正在创建一个带有最近 git commit 哈希值的环境变量,这个哈希值将是我要构建的 docker 镜像的标签。

所以我的文件(比如 deploy.sh)看起来像这样:

GIT_SHA = $(git rev-parse HEAD)
docker build -t user/myimage:$GIT_SHA

然后,我收到错误提示

deploy.sh: line 2: GIT_SHA: command not found
invalid argument "user/myimage:" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.

我通过删除 = 前后的空格来修复它,如下所示:

GIT_SHA=$(git rev-parse HEAD)
docker build -t user/myimage:$GIT_SHA