我正在尝试使用Drone和docker插件部署Web服务。由于存在大量依赖性,我的图像需要大约一个小时才能构建。 为了加快构建时间,我想在基本映像中放置一些我的服务依赖项(不会经常更改),并在部署时在这个基础之上构建我的实际代码(python烧瓶应用程序)
我将基本映像托管在私有存储库中,我的Dockerfile中包含以下行:
FROM: my_private_repo.com/my_base_image:latest
但我不确定如何正确地让Drone访问此回购。
我目前在构建作业中遇到以下错误:
Step 1/11 : FROM:xxx
pull access denied for xxx, repository does not exist or may require 'docker login'
time="2018-01-17T13:13:33Z" level=fatal msg="exit status 1"
有没有办法让我配置docker插件自动登录。
对于上下文,我的YAML类似于:
push-feature:
image: plugins/docker
secrets: [docker_username, docker_password]
repo: xxx/yyy/zzz
registry: xxx
tags: "feature"
when:
event: push
branch:
exclude: [ dev, master ]
答案 0 :(得分:0)
您可以尝试:
在主机上执行docker login
(如果您需要在所有代理主机服务器上的多台服务器上安装多个代理)
使用此代表需要打开信任标志的docker
映像才能装入主机卷
pipeline:
build:
image: docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock your-private-registry.com:8080
commands:
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
- docker build -t myorg/myimage .