oracle db setup.sh,setup.sh

##########################################

#Name: setup.sh

#Desc: setup docker app service

#Author OracleGao

#Email: oraclegao@126.com

#Date 2019-11-26

#Git: https://gitee.com/oraclegao/docker

#Origin: https://gitee.com/oraclegao/docker/blob/master/setup.sh

##########################################

#!/usr/bin/env bash

current_path=$(pwd)

docker_repo_path=$(dirname $0)

if [ "${docker_repo_path}" == "." ]; then

docker_repo_path=${current_path}

fi

git_clone_url=https://gitee.com/oraclegao/docker.git

git_clone_branch=master

git_clone_flag=0

## 获取docker source code

if [ ! -f ${docker_repo_path}/.git/config ]; then

git_clone_flag=1

else

url=$(cat ${docker_repo_path}/.git/config | grep "oraclegao/docker.git" | awk -F '= ' '{print $2}')

if [ "${url}" != "${git_clone_url}" ]; then

git_clone_flag=1

fi

fi

if [ "${git_clone_flag}" == "1" ]; then

docker_repo_path=/tmp/docker-$(date "+%Y%m%d%H%M%S")-$(whoami)

git clone ${git_clone_url} -b ${git_clone_branch} ${docker_repo_path}

fi

function cleanup() {

if [ "${git_clone_flag}" == "1" ]; then

rm -rf ${docker_repo_path}

fi

}

## 打印指令帮助

function usage_services() {

echo "SERVICES:"

for item in $(ls ${docker_repo_path}/services); do

printf " %-26s %s service\n" ${item}, ${item}

done

}

setup_path_default=$(echo ~)/docker-services

function usage() {

echo "setup docker services."

echo

echo "Usage:"

echo " $0 [OPTIONS] "

echo " $0 -h | --help"

echo ""

echo "OPTIONS:"

echo " -a, --assembly assemble services"

echo " -h, --help display this help and exit"

echo " -p, --path setup path, (default: ${setup_path_default})"

echo ""

usage_services

cleanup

exit 1

}

assembly_flag=0

setup_path=${setup_path_default}

services=()

for arg in "$@"; do

case $1 in

-a|--assembly)

assembly_flag=1

shift

;;

-h|--help)

usage

;;

-p|--path)

setup_path=$2

shift

shift

;;

*)

services+=("$1")

shift

;;

esac

done

if [ "${setup_path}" == "" ]; then

echo "ERROR:"

echo " -p or --path parameter empty"

echo ""

cleanup

exit 2

fi

if [ "${services}" == "" ];then

echo "ERROR:"

echo "services not found"

echo ""

usage

fi

for service in ${services[@]}; do

flag=0

for item in $(ls ${docker_repo_path}/services); do

if [ "${service}" == "${item}" ]; then

flag=1

break

fi

done

if [ "${flag}" == "0" ]; then

echo "ERROR:"

echo " invalid service [${service}]"

echo ""

usage_services

cleanup

exit 3

fi

done

mkdir -p ${setup_path}

cd ${setup_path}

setup_path=$(pwd)

file=${setup_path}/docker-compose.yml

if [ "${assembly_flag}" == "1" ]; then

if [ -f ${file} ]; then

exist_services=$(docker-compose config --service)

flag=$?

if [ "${flag}" != "0" ]; then

echo "ERROR:"

echo " invalid docker compose yml file [${file}]"

echo ""

cleanup

exit 4

fi

for service in ${services[@]}; do

for exist_service in ${exist_services}; do

if [ "${service}" == "${exist_service}" ]; then

echo "ERROR:"

echo " service [${service}] exists in docker compose yml file [${file}]"

echo ""

cleanup

exit 5

fi

done

done

else

echo "version: '3.2'" >> ${file}

echo "" >> ${file}

echo "services:" >> ${file}

cp ${docker_repo_path}/lib/assembly/* ${setup_path}/.

fi

for service in ${services[@]}; do

#find ./services/mysql/* -maxdepth 0 ! -name "docker-compose.yml" ! -name ".gitignore" ! -name "*.md"

if [ -e ${docker_repo_path}/services/${service}/conf ]; then

cp -r ${docker_repo_path}/services/${service}/conf ${setup_path}/.

fi

grep '^ ' ${docker_repo_path}/services/${service}/docker-compose.yml >> ${file}

echo "" >> ${file}

done

else

if [ -e ${file} ]; then

echo "ERROR:"

echo " docker compose yml file [${file}] exists in setup path [${setup_path}]"

echo " you can append docker service with [-a] parameter"

echo ""

echo "Usage:"

if [ "$0" == "bash" ]; then

echo " curl -L gitee.com/oraclegao/docker/raw/master/setup.sh | bash -s ${services[@]}-p ${setup_path} -a"

else

echo " $0 -a -p ${setup_path} ${services[@]}"

fi

echo ""

cleanup

exit 6

fi

for service in ${services[@]}; do

cp -a ${docker_repo_path}/services/${service} .

cp -a ${docker_repo_path}/lib/alone/* ./${service}/.

done

fi

cleanup

echo "setup [${services[@]}] in [${setup_path}] success"

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值