【问题标题】:docker repository name component must matchdocker 存储库名称组件必须匹配
【发布时间】:2015-11-07 22:44:22
【问题描述】:

我正在尝试使用此插件构建我的图像:https://github.com/spotify/docker-maven-plugin#use-a-dockerfile

当我运行mvn clean package docker:build

我收到此错误:

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.2.3:build (defa
ult-cli) on project demo: Exception caught: Request error: POST https://192.168.
99.100:2376/v1.12/build?t=DevOpsClient: 500: HTTP 500 Internal Server Error -> [
Help 1]

当我检查 docker 守护进程日志时,我看到了:

Handler for POST /build returned error: repository name component must match \"[a-z0-9]+(?:[._-][a-z0-9]+)*\"" statusCode=500

这是命名约定的文档:https://docs.docker.com/registry/spec/api/

显然你不能有任何大写字母。

我正在尝试按照本指南使用 Spring Boot 进行构建:https://spring.io/guides/gs/spring-boot-docker/

我正在使用 Spring Boot 的 SNAPSHOT 版本,并且我有一个名为 demo-0.1.1-SNAPSHOT 的目录。我相信这可能会导致问题。

我也在 windows 上工作,我的项目目录路径如下:

C:\Users\myname\UserRegistrationClient\git\..... etc

这也会影响存储库命名约定吗?

我将如何改变它?

【问题讨论】:

  • 您指定的 docker 镜像名称是什么?通常 docker 镜像由 [/]/: 格式的标签标识。因此,如果 docker 抱怨存储库名称,我确实假设您对存储库有一些问题,只要您不想将它推送到中心位置,这应该是不必要的。
  • 我刚刚调用了镜像DevOpsClient,你觉得是这个问题吗?
  • 哦,不,我实际上并没有试图将它推到任何地方。实际上,在尝试构建图像时会出现此问题。
  • 是的,因为在构建过程中对构建进行了标记。其中还包括名称。如果您检查公共注册表中的图像,您会发现这些图像没有任何大写名称。只需重命名为 devopsclient 或 dev-ops-client 即可。

标签: spring-boot docker kubernetes dockerfile docker-registry


【解决方案1】:

所以这个正则表达式:[a-z0-9]+(?:[._-][a-z0-9]+)* 不包含任何大写字母。所以你应该把你的图片名改成devopsclient

【讨论】:

  • 哇,感谢你们两个,这个解决方案奏效了。但是你怎么知道是图像名称而不是实际路径是问题所在?
  • @Ikshvaku 错误显示存储库名称。存储库名称与映像名称匹配。
  • 我没有收到同样的错误信息。但解决方案是将 标记内的所有字母更改为小写。非常感谢。
猜你喜欢
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
相关资源
最近更新 更多