“-t,--tag”flag:Invalid 参考格式的参数“/tensorflow-serving-devel”无效

Invalid argument "/tensorflow-serving-devel" for "-t,--tag" flag:Invalid reference format

我正在尝试为像 here 这样的 tensforflow 服务创建 docker 图片。

当我尝试使用所有必需的依赖项(pip 依赖项、bazel、grpc)拉取 docker 图像时

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

编辑:删除 space 后

Docker版本

您的 docker build 命令中有错别字:space 在 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

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

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

在我遇到同样错误的情况下,问题出在“-”和“_”符号组合在一起图片标签。所以像 MMT-6352_-_fix 这样的图片标签是无效的,但是像 MMT-6352_fixMMT-6352-fix 这样的图片标签是有效的。

在我的例子中,我正在创建一个环境变量,其中包含最近 git 提交的哈希值,这个哈希值将是我要构建的 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