我有一个.NET Core 2.1项目,在对它进行测试之后,我正在Travis CI中使用Docker构建该项目。 我认为travis构建的相关部分:
.travis.yml:
deploy:
- provider: script
script: ./deploy.sh $TRAVIS_TAG $DOCKER_USERNAME $DOCKER_PASSWORD
skip_cleanup: true
on:
tags: true
deploy.sh:
#!/bin/bash
set -ev
TAG=$1
DOCKER_USERNAME=$2
DOCKER_PASSWORD=$3
echo "$TAG"
echo "$DOCKER_USERNAME"
echo "$DOCKER_PASSWORD"
docker build -t $DOCKER_USERNAME/rpthreadtrackerv3.backend .
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
docker push $DOCKER_USERNAME/rpthreadtrackerv3.backend:latest
我还是Docker的新手,所以我可以肯定我做错了一些明显的事情,但是尽管如此,当构建中的deploy
步骤运行时,输出为:
令人困惑的是,我很确定这可以工作一次然后停止工作。
还可以运行
docker build -t $DOCKER_USERNAME/rpthreadtrackerv3.backend .
从我的本地命令行正常工作。
Google完全不提这个错误消息的含义,世界上似乎没有人遇到过这个错误消息,但是我却对此感到困惑。导致docker build
在Travis中失败的原因是什么?
答案 0 :(得分:4)
对于那些好奇的人来说,这是系统告诉我在对.dockerignore
文件中的项目进行正则表达式匹配时出错的方式(即该文件中存在语法错误-在这种情况下,我的文件路径上有反斜杠而不是正斜杠。漂亮而神秘;我必须仔细研究Docker源代码以了解正在发生的事情。
希望这可以帮助其他遇到相同问题的人! :)