Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker推送错误,标记或引用无效_Docker_Travis Ci_Treescale - Fatal编程技术网

Docker推送错误,标记或引用无效

Docker推送错误,标记或引用无效,docker,travis-ci,treescale,Docker,Travis Ci,Treescale,我有一个Travis CI构建,它正试图推送到docker注册表,以下是我在构建日志中看到的内容: [info] Built image repo.treescale.com/[secure]/inland24/plant-simulator:1.0-SNAPSHOT 但下一行,我会看到以下内容: Error parsing reference: "/:" is not a valid repository/tag: invalid reference format 这是我的docker p

我有一个Travis CI构建,它正试图推送到docker注册表,以下是我在构建日志中看到的内容:

[info] Built image repo.treescale.com/[secure]/inland24/plant-simulator:1.0-SNAPSHOT
但下一行,我会看到以下内容:

Error parsing reference: "/:" is not a valid repository/tag: invalid reference format
这是我的docker push命令:

docker push $DOCKER_REGISTRY_URL/$APPLICATION_NAME:$IMAGE_VERSION_DEV;
以下是参数:

   - APPLICATION_NAME    = [secure]/inland24/plant-simulator
   - IMAGE_VERSION_DEV   = 1.0-SNAPSHOT
   - DOCKER_REGISTRY_URL = repo.treescale.com
假设[secure]已解析为正确的用户名!我得到的错误是什么?如何解决

我尝试列出所有映像,我可以看到我的映像存在于运行构建的本地计算机上:

REPOSITORY                                           TAG                      IMAGE ID            CREATED                  SIZE
repo.treescale.com/[secure]/inland24/plant-simulator   1.0-SNAPSHOT             34842cf7482e        Less than a second ago   225 MB
anapsix/alpine-java                                  8_server-jre_unlimited   bd197f461851        11 days ago              124 MB

不允许使用括号

发件人:

存储库名称被分解为路径组件。组件 存储库名称必须至少为一个小写字母数字 字符,可选地由句点、破折号或下划线分隔。 更严格地说,它必须匹配正则表达式 [a-z0-9]+(?:[.-][a-z0-9]+)*


你的错误清楚地说明了问题所在。您正在使用

docker push $DOCKER_REGISTRY_URL/$APPLICATION_NAME:$IMAGE_VERSION_DEV;
分析引用时出错:“/:”不是有效的存储库/标记:引用格式无效

如果我将所有环境变量都留空,那么

docker push /:

这给了我同样的错误。在docker推送之前使用env命令,并确保环境变量实际存在或不存在。如果没有,请找出原因

我通过移动docker推到作业描述之外的位来修复此问题,如我的yml代码片段中所示:

jobs:
  include:
    - stage: test
      script: sbt clean coverage test coverageReport
    - stage: build docker image
      script:
        - if [ $TRAVIS_BRANCH == "master" ]; then
            sbt docker:publishLocal;
            docker images;
          fi

after_script:
  - if [ $TRAVIS_BRANCH == "master" ]; then echo "Completed building docker image";
      docker login -u $DOCKER_REGISTRY_USERNAME -p $DOCKER_REGISTRY_PASSWORD $DOCKER_REGISTRY_URL;
      docker push $DOCKER_APP_NAME;
    fi
  - echo $TRAVIS_BRANCH

所以早些时候,我在jobs stage脚本中使用了docker login和docker push命令,然后我将其移到了一个after脚本中,这个脚本完成了这个技巧

括号不是我给出的,而是我在Travis CI中相应地配置了用户名和密码!是的!这看起来像是travis的一个bug——环境变量没有传递出去!我与特拉维斯·西产生了一个问题-