build.sh 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. #!/bin/bash
  2. set -e
  3. env='dev'
  4. base_dir=`pwd`
  5. proj_dir="${base_dir}/tmp/proj"
  6. bin_dir="${base_dir}/tmp/bin"
  7. create_dirs() {
  8. if [ -d ${proj_dir} ]; then
  9. rm -rf ${proj_dir}
  10. fi
  11. mkdir -p ${proj_dir}
  12. if [ -d ${bin_dir} ]; then
  13. rm -rf ${bin_dir}
  14. fi
  15. mkdir -p ${bin_dir}
  16. }
  17. ###############################################################################
  18. # clone 项目
  19. ###############################################################################
  20. clone_proj() {
  21. cd ${proj_dir}
  22. git clone --depth=1 https://github.com/reghao/ik-analyzer-solr.git
  23. git clone --depth=1 https://github.com/reghao/jieba-analysis.git
  24. git clone --depth=1 https://git.reghao.cn/reghao/jutil
  25. git clone --depth=1 https://git.reghao.cn/reghao/tnb
  26. git clone --depth=1 https://git.reghao.cn/reghao/tnbapp
  27. }
  28. ###############################################################################
  29. # 安装依赖
  30. ###############################################################################
  31. build_dependencies() {
  32. cd ${proj_dir}/jutil
  33. mvn clean install -Dmaven.test.skip
  34. cd ${proj_dir}/ik-analyzer-solr
  35. mvn clean install -Dmaven.test.skip
  36. cd ${proj_dir}/jieba-analysis
  37. mvn clean install -Dmaven.test.skip
  38. }
  39. ###############################################################################
  40. # 构建后端应用
  41. ###############################################################################
  42. build_backend() {
  43. ###############################################################################
  44. # 构建 tnb 项目 jar 包
  45. ###############################################################################
  46. cd ${proj_dir}/tnb
  47. mvn clean package -Dmaven.test.skip -P${env}
  48. cp eureka/eureka-server/target/tnb-eureka.jar ${bin_dir}
  49. cp gateway/target/tnb-gateway.jar ${bin_dir}
  50. cp account/account-service/target/tnb-account.jar ${bin_dir}
  51. cp user/user-service/target/tnb-user.jar ${bin_dir}
  52. cp message/message-service/target/tnb-message.jar ${bin_dir}
  53. cp file/file-service/target/tnb-file.jar ${bin_dir}
  54. cp content/content-service/target/tnb-content.jar ${bin_dir}
  55. cp data/data-service/target/tnb-data.jar ${bin_dir}
  56. cp search/search-service/target/tnb-search.jar ${bin_dir}
  57. cp admin/target/tnb-admin.jar ${bin_dir}
  58. ###############################################################################
  59. # oss-store jar 包
  60. ###############################################################################
  61. if [ ! -d ${bin_dir}/oss-store ]; then
  62. mkdir ${bin_dir}/oss-store
  63. fi
  64. cp oss/oss-store/bin/* ${bin_dir}/oss-store
  65. }
  66. ###############################################################################
  67. # 构建前端应用
  68. ###############################################################################
  69. build_front() {
  70. ###############################################################################
  71. # 构建 tnbapp 项目
  72. ###############################################################################
  73. cd ${proj_dir}/tnbapp
  74. npm --registry http://registry.npm.taobao.org i
  75. npm run build
  76. if [ ! -d ${bin_dir}/tnbapp ]; then
  77. mkdir ${bin_dir}/tnbapp
  78. fi
  79. cp -r dist/* ${bin_dir}/tnbapp
  80. }
  81. ###############################################################################
  82. # 构建 tnb 应用 docker 镜像
  83. ###############################################################################
  84. build_image() {
  85. cd ${proj_dir}/tnb
  86. # commit_id=`git rev-parse HEAD | cut -c 1-8`
  87. docker_prefix='tnb'
  88. cd ${proj_dir}/tnb/eureka/eureka-server
  89. docker build -t ${docker_prefix}/eureka .
  90. cd ${proj_dir}/tnb/gateway/
  91. docker build -t ${docker_prefix}/gateway .
  92. cd ${proj_dir}/tnb/account/account-service/
  93. docker build -t ${docker_prefix}/account .
  94. cd ${proj_dir}/tnb/message/message-service/
  95. docker build -t ${docker_prefix}/message .
  96. cd ${proj_dir}/tnb/file/file-service
  97. docker build -t ${docker_prefix}/file .
  98. cd ${proj_dir}/tnb/user/user-service/
  99. docker build -t ${docker_prefix}/user .
  100. cd ${proj_dir}/tnb/content/content-service/
  101. docker build -t ${docker_prefix}/content .
  102. cd ${proj_dir}/tnb/search/search-service/
  103. docker build -t ${docker_prefix}/search .
  104. cd ${proj_dir}/tnb/admin/
  105. docker build -t ${docker_prefix}/admin .
  106. cd ${proj_dir}/tnbapp
  107. commit_id=`git rev-parse HEAD | cut -c 1-8`
  108. docker_prefix='tnb'
  109. docker build -t ${docker_prefix}/tnbapp .
  110. }
  111. echo "创建 proj 目录和 bin 目录..."
  112. create_dirs
  113. echo "clone 项目..."
  114. clone_proj
  115. echo "构建依赖..."
  116. build_dependencies
  117. echo "构建后端应用..."
  118. build_backend
  119. echo "构建前端应用..."
  120. build_front
  121. echo "构建 docker 镜像..."
  122. build_image