After build sucess, we want to push the build docker image to dockerhub. For that we need to login dockerhub provide username and password.

 

Of course, we don't want to public our password. They how can we do that.

 

.travis.yml:

language: node_js
node_js:
  - 13

services:
  - docker

# Pre-testing installs
install:
  - echo "nothing needs to be installed!"

# Scripts to be run such as tests
before_script:
  - echo "no tests"

script:
  - docker --version # print the version for logging
  - docker build -t simple-node .
  - docker tag simple-node zhentian/simple-node:latest

# Tasks to perform after the process is successful. Formatting the Docker username and password as below enables you to programmatically log in without having the password exposed in logs.
after_success:
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
  - docker push zhentian/simple-node

 

Basicly, we use:

- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin

 

`$DOCKER_PASSWORD` was set as env variable in Travis:

[DevOps] Environment Variables with Travis_[DevOps]

 

The output of password will be the input of `--password-stdin`.