feat: enhance build and control
This commit is contained in:
75
bin/build.sh
75
bin/build.sh
@@ -13,12 +13,32 @@ WFCWorkDir=/opt/wfc
|
||||
BuildDockerDir=${BuildRootDir}/build/docker
|
||||
ReleseDir=${BuildRootDir}/release
|
||||
TarFileName=${ProjectL}-${RelVersion}-${RelDate}.tar.gz
|
||||
TmpDir=${BuildRootDir}/tmp
|
||||
TmpEnvFile=${TmpDir}/.env.tmp
|
||||
|
||||
usage() {
|
||||
echo "Usage: sh build.sh [extras|jar|dist|copy|tar|deb|all]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
pre_build_tar(){
|
||||
if [ ! -d ${ReleseDir}/tars ]; then
|
||||
mkdir -p ${ReleseDir}/tars
|
||||
fi
|
||||
if [ -f ${BuildDockerDir}/.env ]; then
|
||||
mv -f ${BuildDockerDir}/.env ${TmpEnvFile}
|
||||
fi
|
||||
}
|
||||
|
||||
pre_build_deb(){
|
||||
if [ ! -d ${ReleseDir}/debs ]; then
|
||||
mkdir -p ${ReleseDir}/debs
|
||||
fi
|
||||
if [ -f ${BuildDockerDir}/.env ]; then
|
||||
mv -f ${BuildDockerDir}/.env ${TmpEnvFile}
|
||||
fi
|
||||
}
|
||||
|
||||
build-extras(){
|
||||
cd ${BuildRootDir}
|
||||
git pull
|
||||
@@ -51,56 +71,69 @@ copy-file(){
|
||||
cp -f ${BuildRootDir}/bin/printJarVer.class ${BuildRootDir}/build/bin/
|
||||
}
|
||||
|
||||
# build tar package
|
||||
build-tar(){
|
||||
# create tar package
|
||||
create-tar(){
|
||||
echo -n "Begin build tar package ... "
|
||||
cd ${BuildRootDir}/build
|
||||
tar cvfz ${ReleseDir}/tars/${TarFileName} bin docker systemd 1>/dev/null
|
||||
tar cvfz ${ReleseDir}/tars/${TarFileName} \
|
||||
--exclude='./docker/mysql/logs' \
|
||||
--exclude='./docker/mysql/data' \
|
||||
--exclude='./docker/mysql/tmp' \
|
||||
--exclude='./docker/nacos/logs' \
|
||||
--exclude='./docker/nginx/logs' \
|
||||
--exclude='./docker/.env' \
|
||||
. 1>/dev/null
|
||||
echo "done"
|
||||
}
|
||||
|
||||
# build deb package
|
||||
build-deb(){
|
||||
# create deb package
|
||||
create-deb(){
|
||||
echo -n "Begin build deb package ... "
|
||||
echo "done"
|
||||
}
|
||||
|
||||
post_build(){
|
||||
if [ -f ${TmpEnvFile} ] && [ ! -f ${BuildDockerDir}/.env ]; then
|
||||
mv -f ${TmpEnvFile} ${BuildDockerDir}/.env
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"extras")
|
||||
build-extras
|
||||
;;
|
||||
;;
|
||||
"jar")
|
||||
build-jar
|
||||
;;
|
||||
;;
|
||||
"dist")
|
||||
build-dist
|
||||
;;
|
||||
;;
|
||||
"copy")
|
||||
copy-file
|
||||
;;
|
||||
;;
|
||||
"tar")
|
||||
# pre_build_tar
|
||||
build-extras
|
||||
build-jar
|
||||
build-dist
|
||||
copy-file
|
||||
build-tar
|
||||
;;
|
||||
create-tar
|
||||
# post_build
|
||||
;;
|
||||
"deb")
|
||||
# pre_build_deb
|
||||
build-extras
|
||||
build-jar
|
||||
build-dist
|
||||
copy-file
|
||||
build-deb
|
||||
;;
|
||||
create-deb
|
||||
# post_build
|
||||
;;
|
||||
"all")
|
||||
build-extras
|
||||
build-jar
|
||||
build-dist
|
||||
copy-file
|
||||
build-tar
|
||||
build-deb
|
||||
;;
|
||||
$0 tar
|
||||
$0 deb
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -54,7 +54,7 @@ case "$1" in
|
||||
java printJarVer ${Jars}
|
||||
;;
|
||||
*)
|
||||
echo "WANFi Controller Service"
|
||||
echo "WANFi Control and Billing Management System Service ... "
|
||||
echo "Usage: $0 start|stop|restart|status|version"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
@@ -10,14 +10,21 @@ jar_dockers="wfc-auth wfc-gateway wfc-modules-system wfc-modules-user wfc-module
|
||||
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}
|
||||
chown -R 999:999 ${docker_work_dir}/mysql/data
|
||||
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
|
||||
@@ -53,6 +60,23 @@ case "$1" in
|
||||
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}
|
||||
@@ -127,8 +151,8 @@ case "$1" in
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "WANFi Controller Setup "
|
||||
echo "Usage: $0 env|base|jar|modules|fe|all|rm [base|jar|modules|fe|all]"
|
||||
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
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
wfc_work_dir=/opt/wfc
|
||||
docker_work_dir=${wfc_work_dir}/docker
|
||||
mysql_sql_dir=${docker_work_dir}/mysql/db
|
||||
docker_mysql_conf=/etc/mysql/conf.d
|
||||
docker_sql_dir=/docker-entrypoint-initdb.d
|
||||
docker_mysql_conf_d=/etc/mysql/conf.d
|
||||
docker_my_conf_file=${docker_mysql_conf_d}/my.cnf
|
||||
|
||||
case "$1" in
|
||||
system)
|
||||
@@ -12,7 +14,8 @@ case "$1" in
|
||||
for sql in ./upgrade/${db_name}/*.sql; do
|
||||
if [ -f "$sql" ]; then
|
||||
echo -n "Execute SQL script: ${sql} ... "
|
||||
docker exec -i wfc-mysql mysql --defaults-file=${docker_mysql_conf}/.my.cnf ${db_name} < ${sql};
|
||||
# docker exec -i wfc-mysql mysql -u ${db_name} < ${sql};
|
||||
docker exec -i wfc-mysql mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
|
||||
if [ $? = 0 ]; then
|
||||
echo "done"
|
||||
fi
|
||||
@@ -20,14 +23,14 @@ case "$1" in
|
||||
echo "No SQL files found in ./upgrade/${db_name}/"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
;;
|
||||
user)
|
||||
db_name=wfc_user_db
|
||||
cd ${mysql_sql_dir}
|
||||
for sql in ./upgrade/${db_name}/*.sql; do
|
||||
if [ -f "$sql" ]; then
|
||||
echo -n "Execute SQL script: ${sql} ... "
|
||||
docker exec -i wfc-mysql mysql --defaults-file=${docker_mysql_conf}/.my.cnf ${db_name} < ${sql};
|
||||
docker exec -i wfc-mysql mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
|
||||
if [ $? = 0 ]; then
|
||||
echo "done"
|
||||
fi
|
||||
@@ -35,14 +38,14 @@ case "$1" in
|
||||
echo "No SQL files found in ./upgrade/${db_name}/"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
;;
|
||||
config)
|
||||
db_name=wfc_config_db
|
||||
cd ${mysql_sql_dir}
|
||||
for sql in ./upgrade/${db_name}/*.sql; do
|
||||
if [ -f "$sql" ]; then
|
||||
echo -n "Execute SQL script: ${sql} ... "
|
||||
docker exec -i wfc-mysql mysql --defaults-file=${docker_mysql_conf}/.my.cnf ${db_name} < ${sql}
|
||||
docker exec -i wfc-mysql mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
|
||||
if [ $? = 0 ]; then
|
||||
echo "done"
|
||||
fi
|
||||
@@ -50,18 +53,15 @@ case "$1" in
|
||||
echo "No SQL files found in ./upgrade/${db_name}/"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
;;
|
||||
all)
|
||||
$0 system
|
||||
$0 user
|
||||
$0 config
|
||||
;;
|
||||
;;
|
||||
*)
|
||||
echo "WANFi Controller and Billing System Setup ..."
|
||||
echo "WANFi Control and Billing Management System Upgrade Database ..."
|
||||
echo "Usage: $0 system|user|config|all"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
;;
|
||||
esac
|
||||
11
build/docker/.env
Normal file
11
build/docker/.env
Normal file
@@ -0,0 +1,11 @@
|
||||
MYSQL_ROOT_PASSWORD=123456
|
||||
MYSQL_DATABASE=wfc_system_db
|
||||
WFC_CONFIG_DATABASE=wfc_config_db
|
||||
WFC_SYSTEM_DATABASE=wfc_system_db
|
||||
WFC_USER_DATABASE=wfc_user_db
|
||||
MYSQL_USER=mysql
|
||||
MYSQL_PASSWORD=
|
||||
NACOS_SERVER_ADDR=192.168.13.128:8848
|
||||
NACOS_NAME_SPACE=wfc-prod
|
||||
GATEWAY_ADDR=192.168.13.128:8080
|
||||
RESTART_OPTION=on-failure:3
|
||||
@@ -20,7 +20,7 @@ services:
|
||||
- wfc-be-network
|
||||
depends_on:
|
||||
- wfc-mysql
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-mysql:
|
||||
container_name: wfc-mysql
|
||||
image: mysql:5.7
|
||||
@@ -33,22 +33,23 @@ services:
|
||||
- wfc-fe-network
|
||||
volumes:
|
||||
- ./mysql/db:/docker-entrypoint-initdb.d
|
||||
- ./mysql/conf:/etc/mysql/conf.d
|
||||
- ./mysql/conf.d:/etc/mysql/conf.d
|
||||
- ./mysql/logs:/logs
|
||||
- ./mysql/data:/var/lib/mysql
|
||||
- ./mysql/tmp:/tmp
|
||||
command: [
|
||||
'mysqld',
|
||||
'--innodb-buffer-pool-size=80M',
|
||||
'--character-set-server=utf8mb4',
|
||||
'--collation-server=utf8mb4_unicode_ci',
|
||||
'--default-time-zone=+8:00',
|
||||
'--lower-case-table-names=1'
|
||||
]
|
||||
# command: [
|
||||
# 'mysqld',
|
||||
# '--defaults-extra-file=/etc/mysql/conf.d/my.cnf',
|
||||
# '--innodb-buffer-pool-size=80M',
|
||||
# '--character-set-server=utf8mb4',
|
||||
# '--collation-server=utf8mb4_unicode_ci',
|
||||
# '--default-time-zone=+8:00',
|
||||
# '--lower-case-table-names=1'
|
||||
# ]
|
||||
environment:
|
||||
MYSQL_DATABASE: 'wfc_system_db'
|
||||
MYSQL_ROOT_PASSWORD: 123456
|
||||
restart: unless-stopped
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-redis:
|
||||
container_name: wfc-redis
|
||||
image: redis
|
||||
@@ -62,7 +63,7 @@ services:
|
||||
- ./redis/conf/redis.conf:/home/wfc/redis/redis.conf
|
||||
- ./redis/data:/data
|
||||
command: redis-server /home/wfc/redis/redis.conf
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-gateway:
|
||||
container_name: wfc-gateway
|
||||
build:
|
||||
@@ -82,7 +83,7 @@ services:
|
||||
environment:
|
||||
- NACOS_SERVER_ADDR=${NACOS_SERVER_ADDR}
|
||||
- NACOS_NAME_SPACE=${NACOS_NAME_SPACE}
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-auth:
|
||||
container_name: wfc-auth
|
||||
build:
|
||||
@@ -101,7 +102,7 @@ services:
|
||||
environment:
|
||||
- NACOS_SERVER_ADDR=${NACOS_SERVER_ADDR}
|
||||
- NACOS_NAME_SPACE=${NACOS_NAME_SPACE}
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-modules-system:
|
||||
container_name: wfc-modules-system
|
||||
build:
|
||||
@@ -122,7 +123,7 @@ services:
|
||||
environment:
|
||||
- NACOS_SERVER_ADDR=${NACOS_SERVER_ADDR}
|
||||
- NACOS_NAME_SPACE=${NACOS_NAME_SPACE}
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-modules-user:
|
||||
container_name: wfc-modules-user
|
||||
build:
|
||||
@@ -143,7 +144,7 @@ services:
|
||||
environment:
|
||||
- NACOS_SERVER_ADDR=${NACOS_SERVER_ADDR}
|
||||
- NACOS_NAME_SPACE=${NACOS_NAME_SPACE}
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-modules-job:
|
||||
container_name: wfc-modules-job
|
||||
build:
|
||||
@@ -162,7 +163,7 @@ services:
|
||||
environment:
|
||||
- NACOS_SERVER_ADDR=${NACOS_SERVER_ADDR}
|
||||
- NACOS_NAME_SPACE=${NACOS_NAME_SPACE}
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
wfc-modules-payment:
|
||||
container_name: wfc-modules-payment
|
||||
build:
|
||||
@@ -202,7 +203,7 @@ services:
|
||||
- wfc-gateway
|
||||
environment:
|
||||
- GATEWAY_ADDR=${GATEWAY_ADDR}
|
||||
restart: unless-stopped
|
||||
restart: ${RESTART_OPTION}
|
||||
|
||||
networks:
|
||||
wfc-fe-network:
|
||||
|
||||
3
build/docker/mysql/conf.d/my.cnf
Normal file
3
build/docker/mysql/conf.d/my.cnf
Normal file
@@ -0,0 +1,3 @@
|
||||
[client]
|
||||
user=root
|
||||
password=123456
|
||||
@@ -4,8 +4,8 @@ FROM mysql:5.7
|
||||
MAINTAINER wfc
|
||||
|
||||
# 执行sql脚本
|
||||
ENV MYSQL_ROOT_PASSWORD=123456
|
||||
COPY ./db/*.sql /docker-entrypoint-initdb.d/
|
||||
# ENV MYSQL_ROOT_PASSWORD=123456
|
||||
# COPY ./db/*.sql /docker-entrypoint-initdb.d/
|
||||
# COPY ./db/initdb.sh /docker-entrypoint-initdb.d/
|
||||
# RUN chmod 755 /docker-entrypoint-initdb.d/initdb.sh
|
||||
# ENTRYPOINT ["bash", "/docker-entrypoint-initdb.d/initdb.sh"]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=WANFi Control and Billing System
|
||||
Description=WANFi Control and Billing Management System
|
||||
After=network.target docker.service
|
||||
Requires=network.target docker.service
|
||||
|
||||
|
||||
Reference in New Issue
Block a user