首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从gitlab-ci将docker镜像发布到docker hub

如何从gitlab-ci将docker镜像发布到docker hub
EN

Stack Overflow用户
提问于 2017-08-05 10:54:13
回答 2查看 19K关注 0票数 53

Gitlab提供了一个.gitlab-ci.yml模板,用于构建图像并将其发布到自己的注册表中(单击其中一个项目中的“新建文件”,选择.gitlab-ci.ymldocker)。该文件如下所示,并且开箱即用:)

代码语言:javascript
代码运行次数:0
运行
复制
# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest

services:
  - docker:dind

before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY

build-master:
  stage: build
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE" .
    - docker push "$CI_REGISTRY_IMAGE"
  only:
    - master

build:
  stage: build
  script:
    - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
    - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
  except:
    - master

但默认情况下,这将发布到gitlab的注册表。我们如何才能发布到docker hub

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-05 10:54:13

根本不需要更改.gitlab-ci.yml,我们只需要在项目的管道设置中添加/替换环境变量。

1.查找所需的注册表url

使用hub.docker.com将不起作用,您将得到以下错误:

来自后台进程的

错误响应:尝试登录https://hub.docker.com/v2/失败,状态为: 404找不到

默认docker集线器注册表url如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
docker info | grep Registry
Registry: https://index.docker.io/v1/

index.docker.io就是我要找的。

2.在gitlab设置中设置环境变量

我想使用gitlab-ci发布gableroux/unity3d images,下面是我在Gitlab's project > Settings > CI/CD > Variables中使用的内容

代码语言:javascript
代码运行次数:0
运行
复制
CI_REGISTRY_USER=gableroux
CI_REGISTRY_PASSWORD=********
CI_REGISTRY=docker.io
CI_REGISTRY_IMAGE=index.docker.io/gableroux/unity3d

设置CI_REGISTRY_IMAGE很重要。

默认为registry.gitlab.com/<username>/<project>

regsitry url需要更新,因此请使用index.docker.io/<username>/<project>

由于docker hub是使用docker时的默认注册表,因此您也可以使用<username>/<project>。我个人更喜欢它是冗长的,所以我保留了完整的注册表url。

此答案还应涵盖其他注册表,只需相应地更新环境变量即可。

票数 78
EN

Stack Overflow用户

发布于 2018-06-11 02:28:31

为了扩展GabLeRoux的答案,

我在GitLab CI构建的推送阶段遇到了一些问题:

denied: requested access to the resource is denied

通过将我的CI_REGISTRY更改为docker.io (删除index.),我能够成功推送。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45517733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档