博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
utils/rpm_build.sh
阅读量:4213 次
发布时间:2019-05-26

本文共 1854 字,大约阅读时间需要 6 分钟。

#!/bin/bash#赋值当前目录,也可以用'./'赋值为当前目录CUR_DIR=$(cd `dirname $0`; pwd)#定义一个函数,说明这个脚本的用法.usage() {        echo "Usage: rpm_build.sh srcdir spec "}#形参个数小于2,则退出if [ $# -lt 2 ]; then         usage        exit 1fi#configure build enviroment#通过sh执行脚本sudo sh ${CUR_DIR}/config.sh#判断docker 是否运行正常,如果不正常的话,重新启动docker 服务器。这里通过飘键得到执行的结果docker_status=`service docker status | grep "inactive" | awk '{print $2}'`if [ ! -z ${docker_status} ]; then        echo "Docker service is inactive, begin to start docker service"        sudo service docker start        if [ $? -ne 0 ] ; then                echo "Starting docker service failed!"                exit 1        else                echo "Docker service start sucessfully!"        fifiecho "Start container to build." #Image_ID=`docker images | grep "openestuary/centos"| grep "latest" | awk '{print $3}'`# id参数 -g, --group    print only the effective group ID# id参数 -u, --user     print only the effective user IDuid=`id -u`gid=`id -g`SRC_DIR_1=$1#下面这一段是字符串的截取,之前已经分析过SRC_DIR_2=${SRC_DIR_1#*/}SRC_DIR_3=${SRC_DIR_2#*/}SRC_DIR_4=${SRC_DIR_3#*/}SPEC_NAME=$2CONTAINER_NAME=${SPEC_NAME%.*}#下面这句不知道啥意思?CONTAINER_NAME=${CONTAINER_NAME/+/}#如果key 不存在就copy 过去if [ ! -f ~/KEY_PASSPHRASE ] ; then    cp /home/KEY_PASSPHRASE  ~/KEY_PASSPHRASEfi执行dcoker ,并输出log到文件中docker run --network=host -d -v ~/:/root/ --name ${CONTAINER_NAME} openestuary/centos:5.0-full bash /root/distro-repo/utils/rpm_build_incontainer.sh /root/${SRC_DIR_4} ${SPEC_NAME} ${uid} ${gid} ${@:3}#bash ~/distro-repo/utils/rpm_build_incontainer.sh ~/${SRC_DIR_4} ${SPEC_NAME} ${uid} ${gid} ${@:3}docker logs -f ${CONTAINER_NAME}echo "Begin to remove building container."删除docker,并通过$? 返回值判断输出是否成功docker rm ${CONTAINER_NAME}if [ $? -ne 0 ]; then        echo "Remove building container failed!"else        echo "Building container have been removed successfully!"fi

转载地址:http://srjmi.baihongyu.com/

你可能感兴趣的文章
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>
AtomicInteger源码解析
查看>>
CopyOnWriteArraySet源码学习
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>
Oracle 18c 单实例安装手册 详细截图版
查看>>
Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档
查看>>
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>
Oracle 11g 新特性 -- ASM 增强 说明
查看>>
Oracle 11g 新特性 -- Database Replay (重演) 说明
查看>>
Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
查看>>
Oracle 11g 新特性 -- RMAN Data Recovery Advisor(DRA) 说明
查看>>
CSDN博客之星 投票说明
查看>>
Oracle wallet 配置 说明
查看>>
Oracle smon_scn_time 表 说明
查看>>
VBox fdisk 不显示 添加的硬盘 解决方法
查看>>
Secure CRT 自动记录日志 配置 小记
查看>>
RMAN RAC 到 单实例 duplicate 自动分配通道 触发 ORA-19505 错误
查看>>
mysql 随机分页的优化
查看>>