[DevOps] Environment Variables with Travis

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:

 

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

 

posted @ 2021-04-01 23:02  Zhentiw  阅读(35)  评论(0编辑  收藏  举报