热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无法从GitlabCI访问私有MySQLDocker镜像

如何解决《无法从GitlabCI访问私有MySQLDocker镜像》经验,为你挑选了1个好方法。

我一直在尝试从我的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

Ruwanka Madh.. 11

第一件事是设置GitLab CI以在需要时提供私有docker注册表的凭据.要做到这一点,你应该遵循文档中的特定部分,作为一个完整的答案

    使用docker login 或以其他方式获取docker注册表URL,用户名和密码(我不得不花一些时间来找出docker hub的注册表)

    DOCKER_AUTH_CONFIG在GitLab CI变量部分中定义varialbe它看起来像

{ "auths":{ "registry.hub.docker.com":{ "auth":"xxxxxxxxxxxxxxxxxxxxxxxxxxxx" // base 64 encoded username:password } } }

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

这应该完全满足拉图像的要求.文档中还有另一部分列出了运行者允许服务列表的要求.如果它没有指定任何它应该没问题,你可能不得不调整它,如果它不起作用.

最终的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作业日志的片段

在此输入图像描述



1> Ruwanka Madh..:

第一件事是设置GitLab CI以在需要时提供私有docker注册表的凭据.要做到这一点,你应该遵循文档中的特定部分,作为一个完整的答案

    使用docker login 或以其他方式获取docker注册表URL,用户名和密码(我不得不花一些时间来找出docker hub的注册表)

    DOCKER_AUTH_CONFIG在GitLab CI变量部分中定义varialbe它看起来像

{ "auths":{ "registry.hub.docker.com":{ "auth":"xxxxxxxxxxxxxxxxxxxxxxxxxxxx" // base 64 encoded username:password } } }

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

这应该完全满足拉图像的要求.文档中还有另一部分列出了运行者允许服务列表的要求.如果它没有指定任何它应该没问题,你可能不得不调整它,如果它不起作用.

最终的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作业日志的片段

在此输入图像描述


推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • PreparedStatement防止SQL注入
    添加数据:packagecom.hyc.study03;importcom.hyc.study02.utils.JDBCUtils;importjava.sql ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • zuul 路由不生效_Zuul网关到底有何牛逼之处?竟然这么多人在用~
    作者:kosamino来源:cnblogs.comjing99p11696192.html哈喽,各位新来的小伙伴们,大家好& ... [详细]
author-avatar
那永A_334
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有