docker - GITLAB-CI 管道无法登录到不安全的注册表
问题描述
我的管道无法登录到我没有 ssl 的私有注册表,因此当管道执行 docker login 时,它会尝试连接 https。
添加了命令选项,如stackoverflow上的其他答案所示
services:
- name: docker:dind
command: ["--insecure-registry=$REGISTRY_URL"]
在 /etc/docker/daemon.json 上添加了这个东西
{
"insecure-registries" : ["myregistry:5000"]
}
stages:
- build
- test
- build_container
- deploy
variables:
REGISTRY_URL: myregistry:5000
CONTAINER_TAG: latest
REGISTRY_PROJECT: hello-world
TEST_TAG: teste
services:
- name: docker:dind
command: ["--insecure-registry=$REGISTRY_URL"]
before_script:
- uname -a
build:
stage: build
image: gcc
script:
- make -f Makefile
artifacts:
paths:
- i386/hello-world/
expire_in: 1 week
deploy: <---- PROBLEM STARTS HERE
stage: deploy
image: docker:latest
environment:
name: deploy
script:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $REGISTRY_URL
- docker pull $REGISTRY_URL/$REGISTRY_PROJECT:$CONTAINER_TAG
- docker tag $REGISTRY_URL/$REGISTRY_PROJECT:$TEST_TAG
- docker push REGISTRY_URL/$REGISTRY_PROJECT:$TEST_TAG
我收到此错误消息:
time="2019-05-07T14:08:47Z" level=info msg="Error logging in to v2 endpoint, trying next endpoint: Get https://myregistry:5000/v2/: dial tcp: lookup myregistry on 193.XX.XX.XX:53: no such host"
如果我从以下位置删除 $REGISTRY_URL:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $REGISTRY_URL
然后我可以登录,但是我不能做一个拉,因为码头图像没有到达注册表?我认为
解决方案
关于命令不安全注册表,您必须使用空字符串定义变量 DOCKER_TLS_CERTDIR: DOCKER_TLS_CERTDIR: ''
推荐阅读
- python - 使用 Pandas (Python) 创建一个列列表并将它们汇总到一个新列中
- python - Pandas Dataframe 到 Postgres 表的转换不起作用
- list - 定义谓词 maxlist(List, Max) 使得 Max 是数字列表中最大的数字 List
- go - 将 Go 项目上传到 GitHub 存储库
- wmi - 为 SCCM 查询创建自定义 WMI 类
- c++ - constexpr 与使用参数包扩展的 POD 结构成员联合
- docker - Docker-entrypoint.sh 导致带有 golang 的 ARM 映像“未找到”
- java - 错误:无法访问 jarfile - 运行 bfg.jar 时
- javascript - 使用前未定义的前向参考任务
- java - 关于 com.jcraft.jsch.JSchException: UnknownHostKey: xycom 的查询。DSA 密钥指纹是“ac:ew:....”