#!/bin/bash function do_run() { echo "-- run --" if [ ! -n "$p2" ]; then echo "profile name error." echo " Usage: ./docker.sh run [profile name] [service name]" return fi if [ ! -n "$p3" ]; then echo "no service name specified. run all services" return fi echo "run [profile name = $p2, service name = $p3]" # 属性必要的 if [ "$p3" = "nats" ]; then docker-compose -f $p2.yaml up -d nats docker-compose -f $p2.yaml up -d nats-1 docker-compose -f $p2.yaml up -d nats-2 return fi if [ "$p3" = "f1" ]; then docker-compose -f $p2.yaml up -d f1-master-1 docker-compose -f $p2.yaml up -d f1-center-1 docker-compose -f $p2.yaml up -d f1-record-1 docker-compose -f $p2.yaml up -d f1-chat-1 docker-compose -f $p2.yaml up -d f1-map-1 docker-compose -f $p2.yaml up -d f1-game-1 docker-compose -f $p2.yaml up -d f1-ops-1 docker-compose -f $p2.yaml up -d f1-web-1 docker-compose -f $p2.yaml up -d f1-gate-1 return fi docker-compose -f $p2.yaml up -d $p3 } function do_stop() { echo "-- stop --" if [ ! -n "$p2" ]; then echo "profile name error." echo " Usage: ./docker.sh stop [profile name] [service name]" return fi if [ ! -n "$p3" ]; then echo "no service name specified. stop all services." return fi if [ "$p3" = "nats" ]; then docker-compose -f $p2.yaml down nats-2 docker-compose -f $p2.yaml down nats-1 docker-compose -f $p2.yaml down nats return fi if [ "$p3" = "f1" ]; then docker-compose -f $p2.yaml down f1-gate-1 docker-compose -f $p2.yaml down f1-web-1 docker-compose -f $p2.yaml down f1-ops-1 docker-compose -f $p2.yaml down f1-game-1 docker-compose -f $p2.yaml down f1-map-1 docker-compose -f $p2.yaml down f1-chat-1 docker-compose -f $p2.yaml down f1-record-1 docker-compose -f $p2.yaml down f1-center-1 docker-compose -f $p2.yaml down f1-master-1 return fi docker-compose -f $p2.yaml down $p3 } echo "----------------DOCKER CLI------------------" p2=$2 p3=$3 case $1 in run) do_run ;; stop) do_stop ;; restart) do_stop do_run ;; *) echo "NETWORK:" echo "docker network create --driver=bridge --subnet=10.10.10.0/24 f1" echo "docker network rm f1" echo "docker network ls" echo "docker network inspect f1" echo "" echo "" echo "COMMAND:" echo "" echo " ./docker.sh run [docker file | db.yaml | dev.yaml] [service name | mongodb | redis | nats | f1]" echo " ./docker.sh stop [docker file | db.yaml | dev.yaml] [service name | mongodb | redis | nats | f1]" echo " ./docker.sh restart [docker file | db.yaml | dev.yaml] [service name | mongodb | redis | nats | f1]" echo "" echo "eg." echo "db.yaml:" echo " [step 1] ./docker.sh run db mongodb" echo " [step 2] ./docker.sh run db redis" echo " [step 3] ./docker.sh run db nats" echo "" echo "eg." echo "dev.yaml:" echo " [step 4] ./docker.sh run [dev | test] f1" echo "" ;; esac echo "----------------NODE CLI------------------"