travis ci中的docker登录失败

时间:2019-06-20 11:45:33

标签: docker travis-ci

我正在尝试将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

我为我的用户名和密码添加了travis环境变量: enter image description here

我已经在docker hub中建立了我的存储库,并将travis和docker hub链接到github repo。有没有办法查看每个版本的更多日志? 也许我想念的东西..?

1 个答案:

答案 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中的一行上进行格式化,就像这样,从iffi的所有内容都在一行上。请注意,在push命令中省略了“ $ DOCKER_USERNAME”,并使用分号将docker logindocker 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