build.sh 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #!/bin/bash
  2. set -e
  3. env='test'
  4. base_dir=`pwd`
  5. docker_prefix='registry.cn-chengdu.aliyuncs.com/tnb028'
  6. proj_dir="${base_dir}/tmp/proj"
  7. bin_dir="${base_dir}/tmp/bin"
  8. ###############################################################################
  9. # 创建构建目录
  10. ###############################################################################
  11. create_dirs() {
  12. if [ -d ${proj_dir} ]; then
  13. echo "删除已存在的 proj_dir: ${proj_dir}"
  14. rm -rf ${proj_dir}
  15. fi
  16. mkdir -p ${proj_dir}
  17. if [ -d ${bin_dir} ]; then
  18. echo "删除已存在的 bin_dir: ${bin_dir}"
  19. rm -rf ${bin_dir}
  20. fi
  21. mkdir -p ${bin_dir}
  22. }
  23. ###############################################################################
  24. # 构建前端应用
  25. ###############################################################################
  26. build_front() {
  27. cd ${proj_dir}
  28. git clone --depth=1 https://git.reghao.cn/reghao/tnbapp
  29. ###############################################################################
  30. # 构建 tnbapp 项目
  31. ###############################################################################
  32. cd ${proj_dir}/tnbapp
  33. npm --registry http://registry.npm.taobao.org i
  34. npm run build
  35. # if [ ! -d ${bin_dir}/tnbapp ]; then
  36. # mkdir ${bin_dir}/tnbapp
  37. # fi
  38. # cp -r dist/* ${bin_dir}/tnbapp
  39. commit_id=`git rev-parse HEAD | cut -c 1-8`
  40. docker build -t ${docker_prefix}/tnbapp .
  41. docker push ${docker_prefix}/tnbapp
  42. }
  43. ###############################################################################
  44. # 构建 oss 应用
  45. ###############################################################################
  46. build_oss() {
  47. cd ${proj_dir}
  48. git clone --depth=1 https://git.reghao.cn/reghao/oss
  49. ###############################################################################
  50. # 构建 oss 项目 jar 包
  51. ###############################################################################
  52. cd ${proj_dir}/oss
  53. mvn clean install -Dmaven.test.skip -pl oss-sdk -am
  54. mvn clean package -Dmaven.test.skip -P${env}
  55. # cp oss-mgr/target/oss-mgr.jar ${bin_dir}
  56. # cp oss-store/bin/oss-store.jar ${bin_dir}
  57. cd ${proj_dir}/oss/oss-mgr
  58. docker build -t ${docker_prefix}/oss-mgr .
  59. docker push ${docker_prefix}/oss-mgr
  60. }
  61. ###############################################################################
  62. # 构建后端应用
  63. ###############################################################################
  64. build_backend() {
  65. cd ${proj_dir}
  66. git clone --depth=1 https://git.reghao.cn/reghao/tnb
  67. ###############################################################################
  68. # 构建 tnb 项目 jar 包
  69. ###############################################################################
  70. cd ${proj_dir}/tnb
  71. mvn clean package -Dmaven.test.skip -P${env}
  72. cp gateway/target/tnb-gateway.jar ${bin_dir}
  73. cp auth/auth-service/target/tnb-auth.jar ${bin_dir}
  74. cp user/user-service/target/tnb-user.jar ${bin_dir}
  75. cp message/message-service/target/tnb-message.jar ${bin_dir}
  76. cp file/file-service/target/tnb-file.jar ${bin_dir}
  77. cp content/content-service/target/tnb-content.jar ${bin_dir}
  78. cp data/data-service/target/tnb-data.jar ${bin_dir}
  79. cp search/search-service/target/tnb-search.jar ${bin_dir}
  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. cd ${proj_dir}/tnb/gateway/
  88. docker build -t ${docker_prefix}/tnbgateway .
  89. docker push ${docker_prefix}/tnbgateway
  90. cd ${proj_dir}/tnb/auth/auth-service/
  91. docker build -t ${docker_prefix}/tnbauth .
  92. docker push ${docker_prefix}/tnbauth
  93. cd ${proj_dir}/tnb/message/message-service/
  94. docker build -t ${docker_prefix}/tnbmessage .
  95. docker push ${docker_prefix}/tnbmessage
  96. cd ${proj_dir}/tnb/file/file-service
  97. docker build -t ${docker_prefix}/tnbfile .
  98. docker push ${docker_prefix}/tnbfile
  99. cd ${proj_dir}/tnb/user/user-service/
  100. docker build -t ${docker_prefix}/tnbuser .
  101. docker push ${docker_prefix}/tnbuser
  102. cd ${proj_dir}/tnb/content/content-service/
  103. docker build -t ${docker_prefix}/tnbcontent .
  104. docker push ${docker_prefix}/tnbcontent
  105. cd ${proj_dir}/tnb/search/search-service/
  106. docker build -t ${docker_prefix}/tnbsearch .
  107. docker push ${docker_prefix}/tnbsearch
  108. cd ${proj_dir}/tnb/admin/
  109. docker build -t ${docker_prefix}/tnbadmin .
  110. docker push ${docker_prefix}/tnbadmin
  111. }
  112. echo "创建 proj 目录和 bin 目录..."
  113. create_dirs
  114. echo "构建前端应用..."
  115. build_front
  116. echo "构建 oss 应用..."
  117. build_oss
  118. echo "构建后端应用和 docker 镜像..."
  119. build_backend
  120. build_image