我正在尝试使用 Drone 和 docker 插件部署 Web 服务。由于存在许多大型依赖项,我的映像大约需要一个小时才能构建。为了加快构建时间,我想将服务的一些依赖项(不会经常更改(放在基本映像中,并在部署时在此基础映像上构建我的实际代码(python flask 应用程序(。
我将基本映像托管在私有存储库中,在我的 Dockerfile 中具有以下行:
FROM: my_private_repo.com/my_base_image:latest
但我不确定如何正确让无人机访问此存储库。
我目前在构建作业中遇到以下错误:
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"
有没有办法让我将码头工人插件配置为自动登录。对于上下文,我的 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 ]
你可以试试:
-
在主机上执行
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 .