首页 > 解决方案 > “docker push”在带有 windows runner 的 gitlabci 中需要 1 个参数

问题描述

我有一个非常简单的 gitlab ci 任务。只需从 Dockerfile 构建一个图像并将其推送到 gitlab docker 存储库:

- echo $CI_REGISTRY_IMAGE
- docker build -t $CI_REGISTRY_IMAGE . 
- docker push "$CI_REGISTRY_IMAGE:latest"

这是我的输出:

$ echo $CI_REGISTRY_IMAGE
vb-git.example.com:8888/my/test
$ docker build -t $CI_REGISTRY_IMAGE .
Sending build context to Docker daemon  131.1kB

Step 1/1 : FROM openjdk
 ---> b853c027c6f5
Successfully built b853c027c6f5
Successfully tagged my.example.com:8888/my/test:latest
$ docker push $CI_REGISTRY_IMAGE:latest
"docker push" requires exactly 1 argument.
See 'docker push --help'.

Usage:  docker push [OPTIONS] NAME[:TAG]

我怀疑这与 Windows shell 执行器没有正确解析推送线有关。当我像下面这样写推送时,它可以工作:

- docker push my.example.com:8888/my/test:latest

但是如何使用 gitlabci 变量来做到这一点,以便 Windows shell 执行器不会感到困惑?

标签: dockergitlab-cigitlab-ci-runner

解决方案


尝试 docker push "${$CI_REGISTRY_IMAGE}:latest"


推荐阅读