无法使用 kaniko 从 GitLab CI 构建 Docker 映像并将其推送到(私有)Artifactory

x80486

我正在设计一个 GitLab CI 管道来为给定的服务构建一个 Docker 镜像。

这是迄今为止 Gitlab CI 清单(相关摘录)的样子:

...

publish-docker-image:
  stage: publish
  dependencies:
    - assemble
  image:
    name: docker.tld.com/namespace/kaniko:latest # At work they offer a custom kaniko image
    entrypoint: [""]
  script:
    - mkdir --parents /kaniko/.docker/
    - mv $kaniko_config /kaniko/.docker/config.json # $kaniko_config is a file variable from GitLab CI
    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination artifactory.tld.com/artifactory/docker-snapshot/organization/project/kaniko-test:0.1.0

$kaniko_config文件转换为以下 JSON:

{
  "auths": {
    "https://artifactory.tld.com/": {
      "username": "the_real_username",
      "password": "the_real_password"
    }
  }
}

现在,每次运行管道时,我都会得到以下输出:

$ mkdir --parents /kaniko/.docker/
$ mv $kaniko_config /kaniko/.docker/config.json
$ cat /kaniko/.docker/config.json
{
  "auths": {
    "https://artifactory.tld.com/": {
      "username": "the_real_username",
      "password": "the_real_password"
    }
  }
}
$ /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination artifactory.tld.com/artifactory/docker-snapshot/organization/project/kaniko-test:0.1.0
error checking push permissions -- make sure you entered the correct tag name, and that you are authenticated correctly, and try again: checking push permission for "artifactory.tld.com/artifactory/docker-snapshot/organization/project/kaniko-test:0.1.0": creating push check transport for artifactory.tld.com failed: GET https://artifactory.tld.com/v2/: : Not Found
Cleaning up file based variables

我在这里做错了什么?此外,我不知道为什么错误消息上有https://artifactory.tld.com/v2/(the /v2),因为我没有使用类似的东西。

亚哈维

对于将来遇到此问题的任何人 - 该kaniko-config.json文件应具有以下结构:

{
  "auths": {
    "<artifactory-docker-registry>": {
      ...
    }
  }
}

可以使用JFrog 平台 UI 中的设置我”按钮检索“artifactory-docker-registry”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Gitlab CI生成Android构建

带有Gitlab的Docker-in-Docker共享运行器,用于构建Docker映像并将其推送到注册表

在容器中安装Docker以供GitLab CI构建使用

将Docker映像从Gitlab-CI构建并推送到Amazon AWS ECR

如何使用gitlab-ci在docker内部构建archlinux pkgbuild

使用GitLab CI构建和推送Docker映像

使用gitlab CI构建docker映像并推送到自签名的https nexus repo

GitLab CI对Docker构建作业无效的参数

如何使用Gitlab CI构建,推送和拉取多个Docker容器?

Gitlab CI-使用共享运行程序构建Docker映像(无法连接到Docker Daemon)

无法从Gitlab CI访问私有MySQL Docker映像

将docker与gitlab-ci集成-如何构建和使用docker镜像?

Gitlab CI-离线使用docker映像

使用lambda构建并将docker映像推送到AWS ECR

Kaniko为什么无法推送多阶段Docker Image?

在GitLab CI中为Node.js应用程序构建Docker映像

从Gitlab CI构建Docker映像时环境变量丢失

构建映像后,如何从.gitlab-ci.yml运行我的docker映像?

使用GitLab CI构建奇异容器

使用gitlab-ci构建Erlang

使用来自Gitlab Registry的私有Docker映像作为CI的基础映像

在构建之间传递文件夹-使用Docker的GitLab CI

无法在 GitLab CI 上的 docker 映像中导入 django

使用 Gitlab-CI 构建 Webpack 失败

无法使用 Kaniko 构建运行 docker 映像(基于 Webshpere 自由)

使用 MinGW 编译的 Qt5 构建 Docker 映像在从“docker:latest”映像运行的容器中工作,但在 GitLab CI 中失败

GitLab CI docker 构建失败

在 Gitlab CI 中构建和推送 Spring Boot maven 插件 docker 镜像

在 Gitlab CI 中构建多个 docker 镜像