2
0

feat: enhance build and control

This commit is contained in:
wfc
2024-12-19 18:37:39 +08:00
parent adc339bdb8
commit ceab83b189
9 changed files with 134 additions and 62 deletions

View File

@@ -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,20 +71,33 @@ 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
@@ -79,26 +112,26 @@ case "$1" in
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

View File

@@ -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
;;

View File

@@ -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}
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

View File

@@ -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
@@ -27,7 +30,7 @@ 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 --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
if [ $? = 0 ]; then
echo "done"
fi
@@ -42,7 +45,7 @@ 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 --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
if [ $? = 0 ]; then
echo "done"
fi
@@ -57,11 +60,8 @@ case "$1" in
$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

11
build/docker/.env Normal file
View 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

View File

@@ -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:

View File

@@ -0,0 +1,3 @@
[client]
user=root
password=123456

View File

@@ -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"]

View File

@@ -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