微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sos-ci bootstrap-jenkins-container.sh脚本分析

1    #!/bin/bash
     2    #
     3    # Description:
     4    # This script is for setup the jenkins dashboard.
     5    #
     6    #------------------------------
     7    # GLOBAL VARIABLES
     8    #------------------------------
     9    if [ "$EUID" -ne 0 ]    //
    10      then echo "Please run as root"
    11      exit 1
    12    else
    13        if [ "$#" -eq 0 ]; then
    14            echo "enter tar volume path"
    15            exit 1
    16        fi
    17    
    18        VOLUMES_DIR=/var/lib/docker/volumes
    19        VOLUME_NAME=jenkins-sos-ci-volume
    20    
    21        #----------------------------------------------------
    22        # Installing docker package and pulling jenkins image
    23        #----------------------------------------------------
    24    
    25        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    26        sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    27        sudo apt-get update
    28        apt-cache policy docker-ce
    29        sudo apt-get install -y docker-ce
    30    
    31        #---------------------------------------------
    32        # Creating a new volume and untar given volume
    33        #---------------------------------------------
    34    
    35        if [ $? -eq 0 ]; then
    36            sudo docker volume create jenkins-sos-ci-volume  //创建一个卷,容器可以存储数据。man docker-volume-create
    37        fi
    38        sudo docker pull jenkins/jenkins                          //拉镜像或者仓库从registry. man docker-pull
    39    
    40        cp $1 $VOLUMES_DIR/$VOLUME_NAME    //拷贝文件
    41        cd $VOLUMES_DIR/$VOLUME_NAME         //切换目录
    42        tar -xvzf $1                                                     //解压文件
    43    
    44        #------------------------------------------
    45        # Move _data folder to newly created volume
    46        #------------------------------------------
    47    
    48        mv jenkins-ci-setup/_data/* _data/
    49    fi

第九行说明:

if [ "$EUID" -ne 0 ]  //root的id为0, 当执行进程的有效用户ID不等于0时。

$EUID :

effective user ID (euid): 有效用户ID,指进程执行时对文件的访问权限

$0: 脚本本身文件名称

$1: 命令行第一个参数,$2为第二个,以此类推

$*: 所有参数列表

$@: 所有参数列表

$#: 参数个数

$$: 脚本运行时的PID

$?: 脚本退出

∗与@的区别 当命令行为test.sh 1 2 3 "$*“表示"1 2 3” "$@“表示"1” “2” “3” 二者没有被引号括起来时是一样的都为"1 2 3",只有当被引号括起来后才表现出差异

 

第25 ~ 29行,安装docker-ce

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐