浏览代码

UPDATE pushToRemote.sh

krrish 7 年之前
父节点
当前提交
ece07bfea1
共有 1 个文件被更改,包括 36 次插入19 次删除
  1. 36 19
      build/pushToRemote.sh

+ 36 - 19
build/pushToRemote.sh

@@ -1,14 +1,12 @@
 #!/bin/bash
-# 
 
 # check input
 if [ -z "$1" ]; then
-    echo "*****************************************************************"
+    echo "**********************************************************************************"
     echo 
-    echo "  Please input image like below:"
-    echo "  registry.svicloud.com/powercloud/oms/server:V01R01B18-3043"
+    echo " Usage: ./pushToReomote registry.svicloud.com/powercloud/oms/server:V01R01B18-3043"
     echo
-    echo "*****************************************************************"
+    echo "**********************************************************************************"
     echo 
     exit 1
 fi
@@ -36,16 +34,6 @@ while true; do
 
 done
 
-# feature
-echo
-echo "  在这台服务器上推拉镜像到法国,会比其它服务器快至少 10 倍的速度 :)"
-echo "  点解...?"
-echo
-which cstream &>/dev/nulll &&  \
-  echo "  科学上网,你值得拥有! --- Need help? QQ: 85509336" | cstream -b1 -t10 || \
-  echo "  科学上网,你值得拥有! --- Need help? QQ: 85509336" && sleep 1 
-echo 
-
 # make a host entry
 if ! grep -q "registry.svicloud.com" /etc/hosts; then
     echo "151.106.8.135 registry.svicloud.com" >>/etc/hosts
@@ -54,19 +42,48 @@ fi
 # comment to use local repo
 sed -i "/^[^#].*registry.svicloud.com/s/^/#/" /etc/hosts
 
+
+# local repository, so no proxy allowed
+if systemctl show --property=Environment docker | grep -q HTTP_PROXY; then
+  mkdir -p /etc/systemd/system/docker.service.d/
+  echo > /etc/systemd/system/docker.service.d/proxy.conf
+  systemctl daemon-reload
+  systemctl restart docker
+fi
+
 # login local repo
 docker login -u admin -p Changeme_123 registry.svicloud.com &>/dev/null || \
   { echo "docker login to local repo failed" && echo && exit 1; } 
 
+
 # pull the image
 if docker pull $1; then
+    echo
     sed -i "/^[#].*registry.svicloud.com/s/^#//" /etc/hosts
+    
+    # add proxy
+    if ! systemctl show --property=Environment docker | grep -q HTTP_PROXY; then
+        mkdir -p /etc/systemd/system/docker.service.d/
+        echo "[Service]" > /etc/systemd/system/docker.service.d/proxy.conf
+        echo "Environment=\"HTTP_PROXY=http://pc.dongcj.com:1080/\" \"HTTPS_PROXY=https://pc.dongcj.com:1080\"" >> \
+          /etc/systemd/system/docker.service.d/proxy.conf
+        systemctl daemon-reload
+        systemctl restart docker
+    fi
+    
     sleep 2
-    echo "checking remote registry status with ping 5 packages"
-    ping registry.svicloud.com -c 5
-    docker login -u admin -p "Gocm5]WeqaSufg" registry.svicloud.com &>/dev/null || \
-      { echo "docker login to remote repo failed" && echo && exit 1; } 
+    echo -n "checking remote registry status.."
+    ping registry.svicloud.com -c 1 &>/dev/null && echo ".ok" || { echo ".failed"; exit 3; }
+    
+    docker login -u admin -p "Gocm5]WeqaSufg" registry.svicloud.com &>/dev/null && \
+    echo "login to remote registry success" || \
+    { echo "login failed, retry login..."; sleep 1; docker login -u admin -p "Gocm5]WeqaSufg" \
+    registry.svicloud.com &>/dev/null || \
+    echo "login failed, retry login..."; sleep 1; docker login -u admin -p "Gocm5]WeqaSufg" \
+    registry.svicloud.com &>/dev/null || \
+    echo "docker login to remote repo failed"; echo; exit 1; } 
     echo
+    
     if docker push $1; then
         echo "push success"
     else