sos-ci run-docker-container.sh脚本分析

cat -n run-docker-container.sh
     1    #!/bin/bash
     2    
     3    docker ps -a | grep sos-ci-container
     4    if [ $? == 0 ]; then    //如果存在
     5        docker rm -f sos-ci-container      //删除容器
     6        docker rmi sos-ci                         //删除镜像
     7    fi
     8    
     9    echo $PUBLIC_KEY  >  gerrit_pub_key
    10    echo "-----BEGIN RSA PRIVATE KEY-----" > gerrit_prvt_key
    11    echo $PRIVATE_KEY >>  gerrit_prvt_key
    12    echo "-----END RSA PRIVATE KEY-----" >> gerrit_prvt_key
    13    
    14    chmod 600 gerrit_prvt_key
    15    chmod 600 gerrit_pub_key
    16    
    17    ./set-env-to-vars.sh
    18    
    19    docker build --no-cache -t sos-ci  --memory-swap -1 .     //用当前目录下的Dockerfile创建镜像,--no-cache不缓存,默认是false, -t : 仓库名称应用于产生的镜像, --memory-swap: 有限的值等于内存加交换分区。
    20    
    21    #docker build -t sos-ci .
    22    
    23    docker run -d --name sos-ci-container sos-ci   //在新的容器中运行一个命令,-d : detached mode: 在后台运行容器并打印出新的容器ID,默认是false。--name: 容器名称,最后sos-ci是镜像名称。
    24    

下面的脚本作用是替换脚本中的用户名与密码等信息。

sos-ci git:(master) cat -n set-env-to-vars.sh
     1    #!/bin/bash
     2    
     3    conf_file="sos-ci.yaml"
     4    password_file="sos-ci/ansible/password.txt"
     5    dockerfile="Dockerfile"
     6    creating_template="create-template.sh"
     7    creating_sos_vm="create-sos-vm.sh"
     8    sos_ci_vars="sos-ci/ansible/group_vars/all.yml"
     9    
    10    f_sed() {
    11              sed -i "s|$1|$2|g"  $3 > /dev/null 2>&1
    12            }
    13    set "$conf_file" "$password_file" "$dockerfile" "$creating_template" "$creating_sos_vm" "$sos_ci_vars"   //设置shell变量
    14    for i                   //对shell变量遍历
    15    do
    16    f_sed VSPHERE_HOST_IP $vsphere_host $i
    17    f_sed VSPHERE_USER $vsphere_user $i
    18    f_sed VSPHERE_PASSWORD $vsphere_password $i
    19    f_sed VSPHERE_ESXI $esxi_host $i
    20    f_sed VSPHERE_DATACENTER $datacenter $i
    21    f_sed VSPHERE_DATASTORE $datastore $i
    22    f_sed AWS_ACCESS_KEY $aws_access_key $i
    23    f_sed AWS_SECRET_KEY $aws_secret_key $i
    24    f_sed AWS_REGION $aws_region $i
    25    f_sed INSTANCE_NAME $vm_name $i
    26    f_sed TEMPEST_INSTANCE_PASSWORD $template_pass $i
    27    f_sed LOCALHOST_PASS $localhost_pass $i
    28    f_sed HOME_DIR $sos_ci_home_dir $i
    29    f_sed ANSIBLE_DIR $sos_ci_ansible_dir $i
    30    f_sed REPO_LOCATION $sos_ci_repo_location $i
    31    f_sed LOG_DIR $sos_ci_log_dir $i
    32    f_sed STAGE $stage $i
    33    f_sed TEST_IT_PATCH_NUM $test_it_patch_num $i
    34    done

猜你喜欢

转载自www.cnblogs.com/longchang/p/11239097.html
SOS
ci
今日推荐