reghao vor 2 Wochen
Ursprung
Commit
75127f5cf7
3 geänderte Dateien mit 273 neuen und 21 gelöschten Zeilen
  1. 45 21
      build.sh
  2. 24 0
      docker-compose-oss.yml
  3. 204 0
      docker-compose-tnb.yml

+ 45 - 21
build.sh

@@ -2,7 +2,7 @@
 
 set -e
 
-env='dev'
+env='test'
 base_dir=`pwd`
 proj_dir="${base_dir}/tmp/proj"
 bin_dir="${base_dir}/tmp/bin"
@@ -28,8 +28,9 @@ clone_proj() {
     # 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
+    git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/oss
+    git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/tnb
+    git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/tnbapp
 }
 
 ###############################################################################
@@ -46,6 +47,26 @@ build_dependencies() {
     mvn clean install -Dmaven.test.skip
 }
 
+###############################################################################
+# 构建 oss 应用
+###############################################################################
+build_oss() {
+    ###############################################################################
+    # 构建 oss 项目 jar 包
+    ###############################################################################
+    cd ${proj_dir}/oss
+    mvn clean install -Dmaven.test.skip -pl oss-sdk -am
+    mvn clean package -Dmaven.test.skip -P${env}
+
+    cp oss-mgr/target/oss-mgr.jar ${bin_dir}
+    # cp oss-store/bin/oss-store.jar ${bin_dir}
+
+    docker_prefix='registry.cn-chengdu.aliyuncs.com/tnb028'
+    cd ${proj_dir}/oss/oss-mgr
+    docker build -t ${docker_prefix}/oss-mgr .
+    docker push ${docker_prefix}/oss-mgr
+}
+
 ###############################################################################
 # 构建后端应用
 ###############################################################################
@@ -55,6 +76,7 @@ build_backend() {
     ###############################################################################
     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}
@@ -63,14 +85,6 @@ build_backend() {
     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
 }
 
 ###############################################################################
@@ -96,33 +110,40 @@ build_front() {
 build_image() {
   cd ${proj_dir}/tnb
 #   commit_id=`git rev-parse HEAD | cut -c 1-8`
-  docker_prefix='tnb'
+  docker_prefix='registry.cn-chengdu.aliyuncs.com/tnb028'
 
   cd ${proj_dir}/tnb/gateway/
-  docker build -t ${docker_prefix}/gateway .
+  docker build -t ${docker_prefix}/tnbgateway .
+  docker push ${docker_prefix}/tnbgateway
   
   cd ${proj_dir}/tnb/auth/auth-service/
-  docker build -t ${docker_prefix}/auth .
+  docker build -t ${docker_prefix}/tnbauth .
+  docker push ${docker_prefix}/tnbauth
 
   cd ${proj_dir}/tnb/message/message-service/
-  docker build -t ${docker_prefix}/message .
+  docker build -t ${docker_prefix}/tnbmessage .
+  docker push ${docker_prefix}/tnbmessage
 
   cd ${proj_dir}/tnb/file/file-service
-  docker build -t ${docker_prefix}/file .
+  docker build -t ${docker_prefix}/tnbfile .
+  docker push ${docker_prefix}/tnbfile
 
   cd ${proj_dir}/tnb/user/user-service/
-  docker build -t ${docker_prefix}/user .
+  docker build -t ${docker_prefix}/tnbuser .
+  docker push ${docker_prefix}/tnbuser
   
   cd ${proj_dir}/tnb/content/content-service/
-  docker build -t ${docker_prefix}/content .
+  docker build -t ${docker_prefix}/tnbcontent .
+  docker push ${docker_prefix}/tnbcontent
   
   cd ${proj_dir}/tnb/search/search-service/
-  docker build -t ${docker_prefix}/search .
+  docker build -t ${docker_prefix}/tnbsearch .
+  docker push ${docker_prefix}/tnbsearch
 
   cd ${proj_dir}/tnbapp
   commit_id=`git rev-parse HEAD | cut -c 1-8`
-  docker_prefix='tnb'
   docker build -t ${docker_prefix}/tnbapp .
+  docker push ${docker_prefix}/tnbapp
 }
 
 echo "创建 proj 目录和 bin 目录..."
@@ -131,9 +152,12 @@ create_dirs
 echo "clone 项目..."
 clone_proj
 
-echo "构建依赖..."
+# echo "构建依赖..."
 # build_dependencies
 
+echo "构建 oss 应用..."
+build_oss
+
 echo "构建后端应用..."
 build_backend
 

+ 24 - 0
docker-compose-oss.yml

@@ -0,0 +1,24 @@
+services:
+  oss-mgr:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/oss-mgr
+    container_name: oss-mgr
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_DATASOURCE_URL=jdbc:mysql://127.0.0.1/tnb_oss_tdb?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
+      - SPRING_DATASOURCE_USERNAME=test
+      - SPRING_DATASOURCE_PASSWORD=Test_123456
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 限制使用 2 个 CPU 核心
+          memory: 2GB       # 容器内存上限
+        reservations:
+          memory: 1GB       # 预留最少 1GB 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"     # 每个日志文件最大 10MB
+        max-file: "1"       # 最多保留 1 个旧日志文件

+ 204 - 0
docker-compose-tnb.yml

@@ -0,0 +1,204 @@
+services:
+  tnbgateway:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbgateway
+    container_name: tnbgateway
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=127.0.0.1:8848
+      - SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
+      - SPRING_CLOUD_NACOS_CONFIG_PASSWORD=Test_123456
+      # 告诉 JVM 自动根据容器限制来计算堆内存(重要!)
+      - JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 最多使用 2 核 CPU
+          memory: 2048M     # 最多使用 2G 内存
+        reservations:
+          cpus: '0.5'       # 宿主机最少为该容器保留 0.5 核
+          memory: 1024M     # 宿主机最少为该容器保留 1G 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"
+  tnbauth:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbauth
+    container_name: tnbauth
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=127.0.0.1:8848
+      - SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
+      - SPRING_CLOUD_NACOS_CONFIG_PASSWORD=Test_123456
+      # 告诉 JVM 自动根据容器限制来计算堆内存(重要!)
+      - JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 最多使用 2 核 CPU
+          memory: 2048M     # 最多使用 2G 内存
+        reservations:
+          cpus: '0.5'       # 宿主机最少为该容器保留 0.5 核
+          memory: 1024M     # 宿主机最少为该容器保留 1G 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"
+  tnbmessage:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbmessage
+    container_name: tnbmessage
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=127.0.0.1:8848
+      - SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
+      - SPRING_CLOUD_NACOS_CONFIG_PASSWORD=Test_123456
+      # 告诉 JVM 自动根据容器限制来计算堆内存(重要!)
+      - JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 最多使用 2 核 CPU
+          memory: 2048M     # 最多使用 2G 内存
+        reservations:
+          cpus: '0.5'       # 宿主机最少为该容器保留 0.5 核
+          memory: 1024M     # 宿主机最少为该容器保留 1G 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"
+  tnbfile:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbfile
+    container_name: tnbfile
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=127.0.0.1:8848
+      - SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
+      - SPRING_CLOUD_NACOS_CONFIG_PASSWORD=Test_123456
+      # 告诉 JVM 自动根据容器限制来计算堆内存(重要!)
+      - JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 最多使用 2 核 CPU
+          memory: 2048M     # 最多使用 2G 内存
+        reservations:
+          cpus: '0.5'       # 宿主机最少为该容器保留 0.5 核
+          memory: 1024M     # 宿主机最少为该容器保留 1G 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"
+  tnbuser:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbuser
+    container_name: tnbuser
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=127.0.0.1:8848
+      - SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
+      - SPRING_CLOUD_NACOS_CONFIG_PASSWORD=Test_123456
+      # 告诉 JVM 自动根据容器限制来计算堆内存(重要!)
+      - JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 最多使用 2 核 CPU
+          memory: 2048M     # 最多使用 2G 内存
+        reservations:
+          cpus: '0.5'       # 宿主机最少为该容器保留 0.5 核
+          memory: 1024M     # 宿主机最少为该容器保留 1G 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"
+  tnbcontent:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbcontent
+    container_name: tnbcontent
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=127.0.0.1:8848
+      - SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
+      - SPRING_CLOUD_NACOS_CONFIG_PASSWORD=Test_123456
+      # 告诉 JVM 自动根据容器限制来计算堆内存(重要!)
+      - JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 最多使用 2 核 CPU
+          memory: 2048M     # 最多使用 2G 内存
+        reservations:
+          cpus: '0.5'       # 宿主机最少为该容器保留 0.5 核
+          memory: 1024M     # 宿主机最少为该容器保留 1G 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"
+  tnbsearch:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbsearch
+    container_name: tnbsearch
+    restart: always
+    network_mode: host
+    environment:
+      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=127.0.0.1:8848
+      - SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
+      - SPRING_CLOUD_NACOS_CONFIG_PASSWORD=Test_123456
+      # 告诉 JVM 自动根据容器限制来计算堆内存(重要!)
+      - JAVA_TOOL_OPTIONS=-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '2.0'       # 最多使用 2 核 CPU
+          memory: 2048M     # 最多使用 2G 内存
+        reservations:
+          cpus: '0.5'       # 宿主机最少为该容器保留 0.5 核
+          memory: 1024M     # 宿主机最少为该容器保留 1G 内存
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"
+  tnbapp:
+    image: registry.cn-chengdu.aliyuncs.com/tnb028/tnbapp
+    container_name: tnbapp
+    restart: always
+    network_mode: host
+    environment:
+      - APP_OPS_ROOT=/opt/data/devops_data
+    volumes:
+      - /etc/localtime:/etc/localtime:ro
+    deploy:
+      resources:
+        limits:
+          cpus: '1.0'
+          memory: 128MB
+        reservations:
+          memory: 64MB
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "1"