docker机+ Gitlabregistry – 如何使authentication工作?

我试图在docker机器主机上构build一个Docker镜像,并将镜像推送到Gitlabregistry中。 我启用了registry,然后按照这里所描述的使用docker-machine(除了我使用172.17.0.1作为主机IP,但是它在Gitlab Runnerconfiguration中的一个小的改变之后)。 问题是,build立图像后,当我试图推它,我得到以下错误:

$ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab.organization.com:39140 Login Succeeded $ docker build -t gitlab.organization.com:39140/organization/project-name . (build went fine) $ docker push gitlab.organization.com:39140/organization/project-name The push refers to a repository [gitlab.organization.com:39140/organization/project-name] 9da290505e25: Preparing 4edf62705ffc: Preparing 9845b0e669c4: Preparing 0dd280e9ab09: Preparing 1efea06cfe5b: Preparing cf516324493c: Preparing cf516324493c: Waiting denied: access forbidden ERROR: Job failed: exit code 1 

这是我的.gitlab-ci.yml:

 image: my-base-image variables: GIT_SUBMODULE_STRATEGY: recursive DOCKER_TLS_VERIFY: "1" DOCKER_HOST: "tcp://172.17.0.1:2376" DOCKER_CERT_PATH: "certs" test:build: script: - mkdir $DOCKER_CERT_PATH - echo "$CA" > $DOCKER_CERT_PATH/ca.pem - echo "$CLIENT_CERT" > $DOCKER_CERT_PATH/cert.pem - echo "$CLIENT_KEY" > $DOCKER_CERT_PATH/key.pem\ - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab.organization.com:39140 - docker build -t gitlab.organization.com:39140/organization/project-name . - docker pull gitlab.organization.com:39140/organization/project-name 

我的理论是来自$ DOCKER_CERT_PATH的证书既用于连接docker-machine主机和Gitlabregistry。 那可能吗? 我可以强制login/密码authentication的Gitlabregistry或生成一个CI可以使用的密钥?