diff --git a/bin/build.sh b/bin/build.sh index 2b80e0b..44819bb 100755 --- a/bin/build.sh +++ b/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 diff --git a/build/bin/wfccontrol.sh b/build/bin/wfccontrol.sh index 7aa4707..3ae3254 100755 --- a/build/bin/wfccontrol.sh +++ b/build/bin/wfccontrol.sh @@ -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 ;; diff --git a/build/bin/wfcsetup.sh b/build/bin/wfcsetup.sh index 5dd225e..6465889 100755 --- a/build/bin/wfcsetup.sh +++ b/build/bin/wfcsetup.sh @@ -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 diff --git a/build/bin/wfcupgdb.sh b/build/bin/wfcupgdb.sh index c91c980..d893a26 100755 --- a/build/bin/wfcupgdb.sh +++ b/build/bin/wfcupgdb.sh @@ -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 \ No newline at end of file diff --git a/build/docker/.env b/build/docker/.env new file mode 100644 index 0000000..abbe50e --- /dev/null +++ b/build/docker/.env @@ -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 diff --git a/build/docker/docker-compose.yml b/build/docker/docker-compose.yml index 9cbc084..d76ec97 100644 --- a/build/docker/docker-compose.yml +++ b/build/docker/docker-compose.yml @@ -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: diff --git a/build/docker/mysql/conf.d/my.cnf b/build/docker/mysql/conf.d/my.cnf new file mode 100644 index 0000000..79c0cde --- /dev/null +++ b/build/docker/mysql/conf.d/my.cnf @@ -0,0 +1,3 @@ +[client] +user=root +password=123456 diff --git a/build/docker/mysql/dockerfile b/build/docker/mysql/dockerfile index 20c5d08..f9ccfec 100644 --- a/build/docker/mysql/dockerfile +++ b/build/docker/mysql/dockerfile @@ -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"] diff --git a/build/systemd/system/wfccontrol.service b/build/systemd/system/wfccontrol.service index c569e5e..92da122 100644 --- a/build/systemd/system/wfccontrol.service +++ b/build/systemd/system/wfccontrol.service @@ -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