加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:29:50 所属栏目:安全 来源:网络整理
导读:我一直在尝试从我的Docker Hub存储库中将私有(自定义)MySQL映像作为服务引入gitlab-ci.yml管道.我添加了一个尝试使用我的用户名和密码(CI变量)登录dockerhub的before_script.失败的构建日志中没有输出表明登录到Docker Hub是否成功,但我假设没有,因为我的图

我一直在尝试从我的Docker Hub存储库中将私有(自定义)MySQL映像作为服务引入gitlab-ci.yml管道.我添加了一个尝试使用我的用户名和密码(CI变量)登录dockerhub的before_script.失败的构建日志中没有输出表明登录到Docker Hub是否成功,但我假设没有,因为我的图像的拉动失败并显示以下消息(编辑:或者它甚至从未尝试过,因为gitlab试图获取在运行before脚本之前的服务?):

存储库不存在或可能需要’docker login'(executor_docker.go:168:0s)

我正在使用共享的跑步者(因为我相信这是我使用gitlab.com的唯一选择?)
我已经看过很多关于docker的gitlab ci标记的提及,但是我没有找到解释如何促进它的文档.

我确信我只是忽略了某些事情/不理解或在我的搜索中遇到了相应的解决方案,所以如果我只是缺乏经验并且事先感谢任何帮助,那么道歉.

我的gitlab-ci(maven变量是因为这个项目的构建依赖于私有maven repo.数据库和redis主机变量在运行时被注入我的应用程序,因此他们知道要指向哪个容器)

image: maven:3.5.0-jdk-8

before_script:
  - "docker login -u$DOCKER_USER -p$DOCKER_PASS" #pipeline variables

variables:
  MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  DATABASE_HOST: mysql
  REDIS_HOST: redis

services:
  - name: privaterepo/private-mysql-schema
    alias: mysql
  - name: redis:latest
    alias: redis

stages:
  - build

maven-build:
  stage: build
  script: "mvn $MAVEN_CLI_OPTS package -B"
  artifacts:
    paths:
      - target/*.jar
最佳答案
第一件事是设置GitLab CI以在需要时提供私有docker注册表的凭据.要做到这一点,你应该遵循specific section in docs,作为一个完整的答案

>使用docker login获取docker注册表URL,用户名和密码
或者其他一些方式(我不得不花一些时间来找出注册表
码头工人中心)
>在GitLab CI变量部分中定义DOCKER_AUTH_CONFIG varialbe

{
???“auths中”:{
??????“registry.hub.docker.com”:{
?????????“auth”:“xxxxxxxxxxxxxxxxxxxxxxxxxxxx”// base 64编码的用户名:密码
??????}
???}
}

>声明图像/服务图像:.gitlab-ci.yml中的registry.hub.docker.com/ruwanka/helloworld:0.1

这应该完全满足拉图像的要求. another section in docs列出了跑步者允许服务列表的要求.如果它没有指定任何它应该没问题,你可能不得不调整它,如果它不起作用.

最终的yaml如下所示

image: registry.hub.docker.com/ruwanka/helloworld:0.1

build:
  script:
   - echo "hello"
# more steps   
services:
  - registry.hub.docker.com/ruwanka/helloworld:0.1

gitlab作业日志的片段

enter image description here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读