首页 > 解决方案 > 为什么从 Travis CI 推送后 Docker 映像没有出现在 Docker Hub 上

问题描述

我试图将我的 docker 图像从 Travis CI 推送到 docker hub,但它没有出现在我的 docker hub 上。所有构建都成功

sudo: required
language: generic
services: 
    - docker

before_install:
    - docker build -t nedstark/docker-tcwlmd -f restful/Dockerfile.dev .

# script:
#     - docker run nedstark/docker-tcwlmd coverage run -m unittest discover restful/

after_success:
    - docker build -t nedstark/server ./restful
    - docker build -t nedstark/worker ./worker
    - docker build -t nedstark/nginx ./nginx
    #Log in to docker Cli
    - echo "$DOCKER_PASSWORD" | docker login -u "DOCKER_ID" --password-stdin
    #Take these images and push them to docker hub
    - docker push nedstark/tcwl-server
    - docker push nedstark/tcwl-worker
    - docker push nedstark/tcwl-nginx

标签: dockergithubdocker-composetravis-ci

解决方案


  1. 通过 Docker Hub 设置 --> 安全创建访问令牌

  2. 将 Travis-CI 构建设置作为环境变量添加DOCKER_USERNAME并添加到其中。DOCKER_PASSWORD确保是从步骤 1DOCKER_PASSWORD生成的访问令牌

  3. .travis.yml添加:

    docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" docker.io
    

这应该能够触发构建并将 Docker 映像推送到 Docker Hub。


推荐阅读