我正在尝试将docker映像构建为travis ci管道的一部分,并将其推送到docker hub。
查看travis ci日志似乎一切正常,但是当执行docker login命令时,出现此错误:
0.02s$ if [ "$TRAVIS_BRANCH" == "master" ]; then echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker push "$DOCKER_USERNAME"/mysite:travis-$TRAVIS_BUILD_NUMBER; fi
"docker login" requires at most 1 argument.
See 'docker login --help'.
Usage: docker login [OPTIONS] [SERVER]
Log in to a Docker registry
Done. Your build exited with 0.
我已经遍历travis docks,并且在travis.yml中用于登录的命令是根据文档进行的。 我尝试使用Google搜索错误,但看不到任何解决方案。
travis.yml:
sudo: required
language: node_js
node_js:
- "stable"
cache:
directories:
- "node_modules"
services:
- docker
before_install:
- docker build -t "$DOCKER_USERNAME"/mysite:travis-$TRAVIS_BUILD_NUMBER .
- docker ps -a
- docker images
- echo "$DOCKER_USERNAME"
- echo $DOCKER_USERNAME
script:
- npm test
- npm run build
- docker images "$DOCKER_USERNAME"/mysite
after_success:
- if [ "$TRAVIS_BRANCH" == "master" ]; then
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push "$DOCKER_USERNAME"/mysite:travis-$TRAVIS_BUILD_NUMBER; fi
我已经在docker hub中建立了我的存储库,并将travis和docker hub链接到github repo。有没有办法查看每个版本的更多日志? 也许我想念的东西..?
答案 0 :(得分:0)
我看到您正在尝试运行docker build -t "$DOCKER_USERNAME"/mysite:travis-$TRAVIS_BUILD_NUMBER .
要清楚,这将生成一个docker标签,其中注册表由
"$DOCKER_USERNAME"
,该注册表中的存储库为mysite
,标记为travis-$TRAVIS_BUILD_NUMBER
。
注册表部分的格式应为registry_url
,存储库看起来像,您希望它成为mysite
,标签为travis-$TRAVIS_BUILD_NUMBER
。不能在标记中使用用户名。
尝试格式化两个单独的行,但是要在.travis.yml中的一行上进行格式化,就像这样,从if
到fi
的所有内容都在一行上。请注意,在push命令中省略了“ $ DOCKER_USERNAME”,并使用分号将docker login
和docker push
命令彼此分开。另请注意,已推送标签名称的更改。那应该解决。
after_success:
- if [ "$TRAVIS_BRANCH" == "master" ]; then echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin; docker push registry_url/mysite:travis-$TRAVIS_BUILD_NUMBER; fi