【发布时间】:2019-01-05 22:19:44
【问题描述】:
我一直在尝试将私有(自定义)MySQL 映像从我的 Docker Hub 存储库提取到 gitlab-ci.yml 管道作为服务。我添加了一个 before_script 尝试使用我的用户名和密码(CI 变量)登录到 dockerhub。失败的构建日志中没有输出表明登录到 Docker Hub 是否成功,但我假设不是因为我的图像的拉取失败并显示以下消息(编辑:或者它甚至从未尝试过,因为 gitlab 试图获取在运行之前的脚本之前提供服务?):
存储库不存在或可能需要 'docker login' (executor_docker.go:168:0s)
我正在使用共享跑步者(因为我相信这是我使用 gitlab.com 的唯一选择?) 我已经看到很多关于 docker 的 gitlab ci 令牌的提及,但我没有找到解释如何促进这一点的文档。
我确定我只是忽略了某些东西/不理解或在我的搜索中遇到了适当的解决方案,如果我只是缺乏经验,我深表歉意,并提前感谢您的帮助。
我的 gitlab-ci(maven 变量是因为该项目的构建依赖于私有 maven 存储库。数据库和 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
【问题讨论】:
标签: docker gitlab-ci dockerhub