on master help sign in
add cd.sh and pushing to docker hub
c54cbecHugh JF Chen
.travis.yml+6−1
@@ -41,6 +41,11 @@ script:
41after_success:
41after_success:
42 - |
42 - |
43 # Build and ship binary
43 # Build and ship binary
44− #./.travis/attach-binary.sh
44+ # cd.sh will deploy the built image locally and push it to the docker hub
45+ # Because it needs to login to docker hub, you should define the following
46+ # two env variables in the travis-ci.org setting page of this repository
47+ # project_m36_DOCKER_HUB_USERNAME
48+ # project_m36_DOCKER_HUB_PASSWORD
49+ ./ci/DevOps/local/test/cd.sh
45
50
46# EOF
51# EOF
DevOps/local/test/deploy/prepare.sh+4
@@ -97,10 +97,14 @@ if ! type docker-compose >/dev/null 2>&1; then
97 ;;
97 ;;
98 debian|ubuntu) sudo apt-get update
98 debian|ubuntu) sudo apt-get update
99 sudo apt-get install -y docker-compose
99 sudo apt-get install -y docker-compose
100+ # following is for docker login
101+ sudo apt-get install -y gnupg pass
100 ;;
102 ;;
101 centos) sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
103 centos) sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
102 sudo chmod +x /usr/local/bin/docker-compose
104 sudo chmod +x /usr/local/bin/docker-compose
103 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
105 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
106+ # following is for docker login
107+ sudo yum install -y gnupg pass
104 ;;
108 ;;
105 Darwin) info "docker-compose will installed with docker desktop for macos. skip."
109 Darwin) info "docker-compose will installed with docker desktop for macos. skip."
106 ;;
110 ;;
ci/DevOps/local/test/deploy/docker-compose.yml+1−1
@@ -3,7 +3,7 @@
3version: '2'
3version: '2'
4services:
4services:
5 project-m36:
5 project-m36:
6− image: project-m36:0.7
6+ image: DOCKER_HUB_IMAGE_TAG
7 ports:
7 ports:
8 - "54321:54321"
8 - "54321:54321"
9 # links:
9 # links:
ci/DevOps/local/test/deploy/finishing.sh+3
@@ -10,4 +10,7 @@ init_with_root_or_sudo "$0"
10
10
11begin_banner "project-m36" "deploy finishing"
11begin_banner "project-m36" "deploy finishing"
12
12
13+# clean up the docker login info
14+[[ -d ~/.docker ]] && sudo rm -fr ~/.docker
15+
13done_banner "project-m36" "deploy finishing"
16done_banner "project-m36" "deploy finishing"
ci/DevOps/local/test/deploy/prepare.sh+10−9
@@ -13,7 +13,14 @@ begin_banner "project-m36" "deploy prepare"
13if [ ! -L ${SCRIPT_ABS_PATH}/../../../../result ]; then
13if [ ! -L ${SCRIPT_ABS_PATH}/../../../../result ]; then
14 warn "no project-m36 build result found, suppose that the image would be pull from registry"
14 warn "no project-m36 build result found, suppose that the image would be pull from registry"
15else
15else
16− sudo sg docker -c "docker load -i ${SCRIPT_ABS_PATH}/../../../../result"
16+ LOCAL_IMAGE_LOAD_RESULT=$(sudo sg docker -c "docker load -i ${SCRIPT_ABS_PATH}/../../../../result")
17+ LOCAL_IMAGE_TAG=$(echo ${LOCAL_IMAGE_LOAD_RESULT} | awk -F"image: " '{print $NF}')
18+ info "local image tag: ${LOCAL_IMAGE_TAG}"
19+ info "tagging the image as projectm36/${LOCAL_IMAGE_TAG}"
20+ sudo sg docker -c "docker tag ${LOCAL_IMAGE_TAG} projectm36/${LOCAL_IMAGE_TAG}"
21+ info "pushing the tag projectm36/${LOCAL_IMAGE_TAG} to docker.io hub"
22+ sudo sg docker -c "docker login -u \"${project_m36_DOCKER_HUB_USERNAME}\" -p \"${project_m36_DOCKER_HUB_PASSWORD}\""
23+ sudo sg docker -c "docker push projectm36/${LOCAL_IMAGE_TAG}"
17fi
24fi
18
25
19set +e
26set +e
@@ -43,13 +50,7 @@ sudo cp ${SCRIPT_ABS_PATH}/docker-compose.yml /var/project-m36/docker-compose-pr
43sudo chown project-m36:project-m36 /var/project-m36/docker-compose-project-m36.yml.orig
50sudo chown project-m36:project-m36 /var/project-m36/docker-compose-project-m36.yml.orig
44
51
45sudo sed "s:project-m36_config_path:/var/project-m36/config:g" < /var/project-m36/docker-compose-project-m36.yml.orig | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml.01" project-m36
52sudo sed "s:project-m36_config_path:/var/project-m36/config:g" < /var/project-m36/docker-compose-project-m36.yml.orig | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml.01" project-m36
46−sudo sed "s:project-m36_data_path:/var/project-m36/data:g" < /var/project-m36/docker-compose-project-m36.yml.01 | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml" project-m36
53+sudo sed "s:project-m36_data_path:/var/project-m36/data:g" < /var/project-m36/docker-compose-project-m36.yml.01 | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml.02" project-m36
47−
48−# if [ -L ${SCRIPT_ABS_PATH}/../../../../result ]; then
49−# project-m36_IMAGE_ID=$(sudo sg docker -c "docker images"|grep -w project-m36|awk '{print $3}')
50−# cmdPath=$(sudo sg docker -c "docker image inspect ${project-m36_IMAGE_ID}" | grep "/nix/store/" | awk -F"/" '{print "/nix/store/"$4}')
51−# sudo sed "s:static_project-m36_nix_store_path:${cmdPath}:g" < /var/project-m36/docker-compose-project-m36.yml | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml.02" project-m36
52−# sudo cat /var/project-m36/docker-compose-project-m36.yml.02 | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml" project-m36
54+sudo sed "s/DOCKER_HUB_IMAGE_TAG/projectm36\/${LOCAL_IMAGE_TAG}/g" < /var/project-m36/docker-compose-project-m36.yml.02 | sudo su -p -c "dd of=/var/project-m36/docker-compose-project-m36.yml" project-m36
53−# fi
54
55
55done_banner "project-m36" "deploy prepare"
56done_banner "project-m36" "deploy prepare"