#!/bin/bash set -e env='dev' base_dir=`pwd` proj_dir="${base_dir}/tmp/proj" bin_dir="${base_dir}/tmp/bin" create_dirs() { if [ -d ${proj_dir} ]; then rm -rf ${proj_dir} fi mkdir -p ${proj_dir} if [ -d ${bin_dir} ]; then rm -rf ${bin_dir} fi mkdir -p ${bin_dir} } ############################################################################### # clone 项目 ############################################################################### clone_proj() { cd ${proj_dir} # git clone --depth=1 https://github.com/reghao/ik-analyzer-solr.git # git clone --depth=1 https://github.com/reghao/jieba-analysis.git # git clone --depth=1 https://git.reghao.cn/reghao/jutil git clone --depth=1 https://git.reghao.cn/reghao/tnb git clone --depth=1 https://git.reghao.cn/reghao/tnbapp } ############################################################################### # 安装依赖 ############################################################################### build_dependencies() { cd ${proj_dir}/jutil mvn clean install -Dmaven.test.skip cd ${proj_dir}/ik-analyzer-solr mvn clean install -Dmaven.test.skip cd ${proj_dir}/jieba-analysis mvn clean install -Dmaven.test.skip } ############################################################################### # 构建后端应用 ############################################################################### build_backend() { ############################################################################### # 构建 tnb 项目 jar 包 ############################################################################### cd ${proj_dir}/tnb mvn clean package -Dmaven.test.skip -P${env} cp gateway/target/tnb-gateway.jar ${bin_dir} cp auth/auth-service/target/tnb-auth.jar ${bin_dir} cp user/user-service/target/tnb-user.jar ${bin_dir} cp message/message-service/target/tnb-message.jar ${bin_dir} cp file/file-service/target/tnb-file.jar ${bin_dir} cp content/content-service/target/tnb-content.jar ${bin_dir} cp data/data-service/target/tnb-data.jar ${bin_dir} cp search/search-service/target/tnb-search.jar ${bin_dir} ############################################################################### # oss-store jar 包 ############################################################################### if [ ! -d ${bin_dir}/oss-store ]; then mkdir ${bin_dir}/oss-store fi cp oss/oss-store/bin/* ${bin_dir}/oss-store } ############################################################################### # 构建前端应用 ############################################################################### build_front() { ############################################################################### # 构建 tnbapp 项目 ############################################################################### cd ${proj_dir}/tnbapp npm --registry http://registry.npm.taobao.org i npm run build if [ ! -d ${bin_dir}/tnbapp ]; then mkdir ${bin_dir}/tnbapp fi cp -r dist/* ${bin_dir}/tnbapp } ############################################################################### # 构建 tnb 应用 docker 镜像 ############################################################################### build_image() { cd ${proj_dir}/tnb # commit_id=`git rev-parse HEAD | cut -c 1-8` docker_prefix='tnb' cd ${proj_dir}/tnb/gateway/ docker build -t ${docker_prefix}/gateway . cd ${proj_dir}/tnb/auth/auth-service/ docker build -t ${docker_prefix}/auth . cd ${proj_dir}/tnb/message/message-service/ docker build -t ${docker_prefix}/message . cd ${proj_dir}/tnb/file/file-service docker build -t ${docker_prefix}/file . cd ${proj_dir}/tnb/user/user-service/ docker build -t ${docker_prefix}/user . cd ${proj_dir}/tnb/content/content-service/ docker build -t ${docker_prefix}/content . cd ${proj_dir}/tnb/search/search-service/ docker build -t ${docker_prefix}/search . cd ${proj_dir}/tnbapp commit_id=`git rev-parse HEAD | cut -c 1-8` docker_prefix='tnb' docker build -t ${docker_prefix}/tnbapp . } echo "创建 proj 目录和 bin 目录..." create_dirs echo "clone 项目..." clone_proj echo "构建依赖..." # build_dependencies echo "构建后端应用..." build_backend echo "构建前端应用..." build_front echo "构建 docker 镜像..." build_image