162 lines
5.3 KiB
Bash
Executable File
162 lines
5.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
wfc_work_dir=/opt/wfc
|
|
docker_work_dir=${wfc_work_dir}/docker
|
|
src_service_dir=${wfc_work_dir}/systemd/system
|
|
dst_service_dir=/etc/systemd/system
|
|
|
|
base_dockers="wfc-nacos wfc-mysql wfc-redis"
|
|
jar_dockers="wfc-auth wfc-gateway wfc-modules-system wfc-modules-user wfc-modules-job wfc-modules-payment"
|
|
modules_dockers="wfc-modules-system wfc-modules-user wfc-modules-job wfc-modules-payment"
|
|
fe_docker=wfc-nginx
|
|
|
|
docker_mysql_conf_d=/etc/mysql/conf.d
|
|
docker_my_conf_file=${docker_mysql_conf_d}/my.cnf
|
|
|
|
case "$1" in
|
|
env)
|
|
# prepare directory
|
|
mkdir -p ${docker_work_dir}/mysql/tmp
|
|
chown -R root:root ${docker_work_dir}
|
|
if [ -d ${docker_work_dir}/mysql/data ]; then
|
|
chown -R 999:999 ${docker_work_dir}/mysql/data
|
|
fi
|
|
find ${docker_work_dir} -type d -exec chmod 775 {} \;
|
|
find ${docker_work_dir} -type f -exec chmod 664 {} \;
|
|
chown root:root ${docker_work_dir}/mysql/conf.d/my.cnf
|
|
chmod 600 ${docker_work_dir}/mysql/conf.d/my.cnf
|
|
chmod 1777 ${docker_work_dir}/mysql/tmp
|
|
|
|
# setup system serivce
|
|
cp -rf ${src_service_dir}/wfccontrol.service ${dst_service_dir}/
|
|
systemctl daemon-reload
|
|
systemctl enable wfccontrol.service
|
|
|
|
# 获取传入的IP地址
|
|
new_ip=$2
|
|
|
|
# 定义原始文件和临时文件
|
|
def_env_file=${docker_work_dir}/env/default.env
|
|
org_env_file=${docker_work_dir}/.env
|
|
tmp_env_file=${docker_work_dir}/temp.env
|
|
|
|
if [ ! -f ${org_env_file} ]; then
|
|
cp ${def_env_file} ${org_env_file}
|
|
fi
|
|
|
|
if [ ! -z "${new_ip}" ]; then
|
|
# 使用sed命令替换IP地址
|
|
# 替换.env文件
|
|
sed "s/NACOS_SERVER_ADDR=.*/NACOS_SERVER_ADDR=${new_ip}:8848/" ${org_env_file} > $tmp_env_file
|
|
sed -i "s/GATEWAY_ADDR=.*/GATEWAY_ADDR=${new_ip}:8080/" $tmp_env_file
|
|
mv $tmp_env_file $org_env_file
|
|
|
|
# 定义原始文件和临时文件
|
|
org_nginx_conf=${docker_work_dir}/nginx/conf/nginx.conf
|
|
tmp_nginx_conf=${docker_work_dir}/nginx/conf/tmp_nginx.conf
|
|
|
|
# 使用sed命令替换proxy_pass行中的IP地址
|
|
sed "s|proxy_pass http://.*:8080/;|proxy_pass http://${new_ip}:8080/;|" $org_nginx_conf > $tmp_nginx_conf
|
|
mv $tmp_nginx_conf $org_nginx_conf
|
|
fi
|
|
;;
|
|
initdb)
|
|
# init database
|
|
cd ${docker_work_dir}
|
|
docker-compose up -d wfc-mysql
|
|
sleep 10
|
|
for sql in ${docker_work_dir}/mysql/db/*.sql; do
|
|
if [ -f "$sql" ]; then
|
|
echo -n "Execute SQL script: ${sql} ... "
|
|
docker exec -i wfc-mysql mysql --defaults-extra-file=${docker_my_conf_file} < ${sql}
|
|
if [ $? = 0 ]; then
|
|
echo "done"
|
|
fi
|
|
else
|
|
echo "No SQL files found in ${docker_work_dir}/mysql/db/"
|
|
fi
|
|
done
|
|
;;
|
|
base)
|
|
# build docker compose
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${base_dockers}
|
|
docker-compose build ${base_dockers}
|
|
;;
|
|
jar)
|
|
# build docker compose
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${jar_dockers}
|
|
docker-compose build ${jar_dockers}
|
|
;;
|
|
modules)
|
|
# build docker compose
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${modules_dockers}
|
|
docker-compose build ${modules_dockers}
|
|
;;
|
|
fe)
|
|
# build docker compose
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${fe_docker}
|
|
docker-compose build ${fe_docker}
|
|
;;
|
|
all)
|
|
$0 env $2
|
|
$0 base
|
|
$0 jar
|
|
$0 fe
|
|
;;
|
|
rm)
|
|
case "$2" in
|
|
base)
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${base_dockers}
|
|
for base_docker in ${base_dockers}; do
|
|
docker rm ${base_docker}
|
|
done
|
|
;;
|
|
jar)
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${jar_dockers}
|
|
for jar_docker in ${jar_dockers}; do
|
|
docker rm ${jar_docker}
|
|
docker rmi docker_${jar_docker}
|
|
done
|
|
;;
|
|
modules)
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${modules_dockers}
|
|
for modules_docker in ${modules_dockers}; do
|
|
docker rm ${modules_docker}
|
|
docker rmi docker_${modules_docker}
|
|
done
|
|
;;
|
|
fe)
|
|
cd ${docker_work_dir}
|
|
docker-compose stop ${fe_docker}
|
|
docker rm ${fe_docker}
|
|
docker rmi nginx
|
|
;;
|
|
all)
|
|
$0 rm base
|
|
$0 rm jar
|
|
$0 rm fe
|
|
;;
|
|
*)
|
|
echo "WANFi Controller Setup "
|
|
echo "Usage: $0 rm [base|jar|modules|fe|all]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
echo "WANFi Control and Billing Management System Setup ... "
|
|
echo "Usage: $0 env|initdb|base|jar|modules|fe|all|rm [base|jar|modules|fe|all]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
|
|
|