* #01 init code

This commit is contained in:
yanghanbin 2024-02-22 17:02:36 +08:00
commit b41f0c3b05
4 changed files with 280 additions and 0 deletions

27
Dockerfile Normal file
View File

@ -0,0 +1,27 @@
# 基础镜像
FROM openjdk:8-jre
# author
MAINTAINER afe
# 挂载目录
VOLUME /home/ai
# 创建目录
RUN mkdir -p /home/ai
ENV HOSTNAME="ai-data"
#
ARG PROFILE_ACTIVE
# 指定路径
WORKDIR /home/ai
# 复制jar文件到路径
COPY /target/ai-data.jar /home/ai/ai-data.jar
#COPY /ai-auth/jar_lib/skywalking /home/ai/skywalking
ENV TIME_ZONE=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
# 启动认证服务
ENTRYPOINT ["java", "-Xms512m", "-Xmx512m", "-jar", "ai-data.jar", "--spring.cloud.nacos.discovery.ip=${HOSTNAME}", "--spring.profiles.active=${PROFILE_ACTIVE}"]

49
bin/depoly.sh Normal file
View File

@ -0,0 +1,49 @@
#接收外部参数由jenkinsfile执行部署脚本时传递
projectName=$1
imageName=$2
version=$3
profileActive=$4
echo "镜像名: $imageName"
echo "项目名: $projectName"
echo "版本号: $version"
echo "多环境: $profileActive"
# 容器id
containerId=$(docker ps -a | grep -w "${projectName}" | awk '{print $1}')
if [ "$containerId" != "" ] ;
then
#停掉容器
docker stop "$containerId"
#删除容器
docker rm "$containerId"
echo "成功删除容器"
fi
# 镜像id
imageId=$(docker images | grep -w "${projectName}" | awk '{print $3}')
#if [ "$imageId" != "" ] ;
#then
#删除镜像
#docker rmi --force $(docker images | grep -w "${projectName}" | awk '{print $3}')
#echo "成功删除镜像"
#fi
docker login 192.168.3.210:9999
# 镜像下载
docker pull "$imageName"
# cd /data/dev/app
# 启动容器
VERSION="${version}" PROFILE_ACTIVE=${profileActive} docker-compose up -d "${projectName}"
echo "容器启动成功"
# 镜像id
imageId=$(docker images | grep -w "${projectName}" | awk '{print $3}')
#if [ "$imageId" != "" ] ;
#then
#删除镜像
#docker rmi --force $(docker images | grep -w "${projectName}" | awk '{print $3}')
#echo "成功删除镜像"
#fi

98
bin/docker-compose.yml Normal file
View File

@ -0,0 +1,98 @@
version: "3.8"
services:
ai-auth:
image: 192.168.3.210:9999/ai/ai-auth:${VERSION}
container_name: ai-auth
ports:
- "9206:9206"
mem_limit: 512m
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-auth/:/data/logs/ai-auth
restart:
always
ai-customer:
image: 192.168.2.210:9999/ai/ai-customer:${VERSION}
container_name: ai-customer
ports:
- "9204:9204"
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-customer/:/data/logs/ai-customer
restart:
always
ai-file:
image: 192.168.2.210:9999/ai/ai-file:${VERSION}
container_name: ai-file
ports:
- "9208:9208"
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-file/:/data/logs/ai-file
restart:
always
ai-gateway:
image: 192.168.2.210:9999/ai/ai-gateway:${VERSION}
container_name: ai-gateway
ports:
- "8088:8088"
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-gateway/:/data/logs/ai-gateway
restart:
always
ai-job:
image: 192.168.2.210:9999/ai/ai-job:${VERSION}
container_name: ai-job
ports:
- "9203:9203"
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-job/:/data/logs/ai-job
restart:
always
ai-news:
image: 192.168.2.210:9999/ai/ai-news:${VERSION}
container_name: ai-news
ports:
- "9205:9205"
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-news/:/data/logs/ai-news
restart:
always
ai-route:
image: 192.168.2.210:9999/ai/ai-route:${VERSION}
container_name: ai-route
ports:
- "9207:9207"
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-route/:/data/logs/ai-route
restart:
always
ai-system:
image: 192.168.2.210:9999/ai/ai-system:${VERSION}
container_name: ai-system
ports:
- "9201:9201"
environment:
PROFILE_ACTIVE: ${PROFILE_ACTIVE}
volumes:
- /data/logs/ai-system/:/data/logs/ai-system
restart:
always
networks:
default:
external:
name: docker_default

106
pom.xml Normal file
View File

@ -0,0 +1,106 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.afe</groupId>
<artifactId>ai-common</artifactId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ai-data</artifactId>
<description>
ai-data数据中心
</description>
<dependencies>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- SpringBoot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Common Security-->
<dependency>
<groupId>com.afe</groupId>
<artifactId>ai-common-security</artifactId>
</dependency>
<!-- Ai Customer -->
<dependency>
<groupId>com.afe</groupId>
<artifactId>ai-api-customer</artifactId>
</dependency>
<!-- SpringBoot Websocket -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!-- Common Baffle -->
<dependency>
<groupId>com.afe</groupId>
<artifactId>ai-common-baffle</artifactId>
</dependency>
<!-- SpringBoot 测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Junit Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>