This commit is contained in:
孙小云 2025-05-16 15:38:27 +08:00
parent f16055710a
commit 5d1cabf7c7
19 changed files with 225 additions and 39 deletions

37
.cursorrules Normal file
View File

@ -0,0 +1,37 @@
# Role
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生不善于表达产品和代码需求。你的工作对用户来说非常重要完成后将获得10000美元奖励。
# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。
在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:
## 第一步
- 当用户向你提出任何需求时你首先应该浏览根目录下的readme.md文件了解当前项目的状态和存在的问题并根据实际情况调整你的工作计划。
# 本规则由 AI进化论-花生 创建,版权所有,引用请注明出处
## 第二步
你需要理解用户正在给你提供的是什么任务
### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。
### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着在完成规划后你应当选择合适的编程语言和框架来实现用户需求你应该选择solid原则来设计代码结构并且使用设计模式解决常见问题
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。
### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。
- 特别注意当一个bug经过两次调整仍未解决时你将启动系统二思考模式
1. 首先系统性分析导致bug的可能原因列出所有假设
2. 然后,为每个假设设计验证方法
3. 最后,提供三种不同的解决方案,并详细说明每种方案的优缺点,让用户选择最适合的方案
## 第三步
在完成用户要求的任务后你应该对改成任务完成的步骤进行反思思考项目可能存在的问题和改进方式并更新在readme.md文件中

View File

@ -3,3 +3,5 @@
*temp*
.DS_Store
*.tgz
readme.md
.cursorrules

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

9
.idea/docker.iml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="openjdk-23" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/docker.iml" filepath="$PROJECT_DIR$/.idea/docker.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -5,11 +5,12 @@ export DOMAIN=bazhong
export NETWORK="swarm_network_$DOMAIN"
export HOST_IP=127.0.0.1
export REGISTRY=registry.t-aaron.com
export SKY_DOMAIN=sky-${DOMAIN}.t-aaron.com
export SKYWALKING_UI_DOMAIN=sky-${DOMAIN}.t-aaron.com
export CONSUL_DOMAIN=consul-${DOMAIN}.t-aaron.com
export XXLJOB_DOMAIN=xxljob-${DOMAIN}.t-aaron.com
export OIDC_SERVER_DOMAIN=oidc-${DOMAIN}.t-aaron.com
export MINIO_DOMAIN=minio-${DOMAIN}.t-aaron.com
export MINIO_CONSOLE_DOMAIN=minioconsole-${DOMAIN}.t-aaron.com
export REGISTRY_HOST=${REGISTRY}/tuoheng/
#export REGISTRY_HOST=""
@ -45,7 +46,7 @@ export MQTT_MEMORY=512m
#Kafka 配置
export KAFKA_PORT=9092
export KAFKA_IMAGE=${REGISTRY_HOST}confluentinc/cp-kafka:latest
export KAFKA_IMAGE=bitnami/kafka:latest
export KAFKA_NAME=KAFKA_${DOMAIN}
export KAFKA_MEMORY=512m
@ -61,7 +62,7 @@ export SRS_DATA=${NETWORK}_srs_data
#Minio 配置
export MINIO_NAME=MINIO_${DOMAIN}
export MINIO_NAME=${MINIO_DOMAIN}
export MINIO_MEMORY=512m
export MINIO_IMAGE=quay.io/minio/minio
export MINIO_DATA=${NETWORK}_minio_data
@ -69,6 +70,8 @@ export MINIO_API_PORT=9000
export MINIO_CONSOLE_PORT=9002
export MINIO_ROOT_USER=miniopassword
export MINIO_ROOT_PASSWORD=miniopassword
export MINIO_ACCESS_KEY=minioaccesskey
export MINIO_SECRET_KEY=minioaccesskey
# Elasticsearch 配置
export ES_NAME=ES_${DOMAIN}
@ -107,78 +110,78 @@ export XXLJOB_ACCESS_TOKEN=default_token
export SKY_AOP=106.15.229.178:11800
#OIDCServer 配置
export OIDC_SERVER_NAME=OIDC_SERVER_${DOMAIN}
export OIDC_SERVER_NAME=OIDC-SERVER${DOMAIN}
export OIDC_SERVER_IMAGE=${REGISTRY_HOST}oidcserver:${DOMAIN}
export OIDC_SERVER_JAR=tuoheng_oidc_server.jar
export OIDC_SERVER_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/oidcservice/${OIDC_SERVER_JAR}
export OIDC_SERVER_MEMORY=512m
#OIDCAdmin 配置
export OIDC_ADMIN_NAME=OIDC_ADMIN_${DOMAIN}
export OIDC_ADMIN_NAME=OIDC-ADMIN${DOMAIN}
export OIDC_ADMIN_IMAGE=${REGISTRY_HOST}oidcadmin:${DOMAIN}
export OIDC_ADMIN_JAR=tuoheng_oidc_admin.jar
export OIDC_ADMIN_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/oidcadmin/${OIDC_ADMIN_JAR}
export OIDC_ADMIN_MEMORY=512m
export GATEWAY_NAME=GATEWAY_${DOMAIN}
export GATEWAY_NAME=GATEWAY${DOMAIN}
export GATEWAY_IMAGE=${REGISTRY_HOST}gateway:${DOMAIN}
export GATEWAY_JAR=tuoheng_gateway.jar
export GATEWAY_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/gateway/${GATEWAY_JAR}
export GATEWAY_MEMORY=512m
export HHZ_API_NAME=HHZ_API_${DOMAIN}
export HHZ_API_NAME=HHZ-API${DOMAIN}
export HHZ_API_IMAGE=${REGISTRY_HOST}hhzapi:${DOMAIN}
export HHZ_API_JAR=tuoheng_hhz_api.jar
export HHZ_API_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/hhz-api/${HHZ_API_JAR}
export HHZ_API_MEMORY=512m
export HHZ_ADMIN_NAME=HHZ_ADMIN_${DOMAIN}
export HHZ_ADMIN_NAME=HHZ-ADMIN${DOMAIN}
export HHZ_ADMIN_IMAGE=${REGISTRY_HOST}hhzadmin:${DOMAIN}
export HHZ_ADMIN_JAR=tuoheng_hhz_admin.jar
export HHZ_ADMIN_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/hhz-admin/${HHZ_ADMIN_JAR}
export HHZ_ADMIN_MEMORY=512m
export AIRPORT_NAME=AIRPORT_${DOMAIN}
export AIRPORT_NAME=AIRPORT${DOMAIN}
export AIRPORT_IMAGE=${REGISTRY_HOST}airport:${DOMAIN}
export AIRPORT_JAR=tuoheng_airport_admin.jar
export AIRPORT_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/airport/${AIRPORT_JAR}
export AIRPORT_MEMORY=512m
export BUSINESS_NAME=BUSINESS_${DOMAIN}
export BUSINESS_NAME=BUSINESS${DOMAIN}
export BUSINESS_IMAGE=${REGISTRY_HOST}business:${DOMAIN}
export BUSINESS_JAR=tuoheng_business_admin.jar
export BUSINESS_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/business/${BUSINESS_JAR}
export BUSINESS_MEMORY=512m
export DSP_API_NAME=DSP_API_${DOMAIN}
export DSP_API_NAME=DSP-API${DOMAIN}
export DSP_API_IMAGE=${REGISTRY_HOST}dspapi:${DOMAIN}
export DSP_API_JAR=tuoheng_dsp_api.jar
export DSP_API_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-api/${DSP_API_JAR}
export DSP_API_MEMORY=512m
export DSP_ADMIN_NAME=DSP_ADMIN_${DOMAIN}
export DSP_ADMIN_NAME=DSP-ADMIN${DOMAIN}
export DSP_ADMIN_IMAGE=${REGISTRY_HOST}dspadmin:${DOMAIN}
export DSP_ADMIN_JAR=tuoheng_dsp_admin.jar
export DSP_ADMIN_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-admin/${DSP_ADMIN_JAR}
export DSP_ADMIN_MEMORY=512m
export DSP_INSPECTION_NAME=DSP_INSPECTION_${DOMAIN}
export DSP_INSPECTION_NAME=DSP-INSPECTION${DOMAIN}
export DSP_INSPECTION_IMAGE=${REGISTRY_HOST}dspinspection:${DOMAIN}
export DSP_INSPECTION_JAR=tuoheng_dsp_inspection.jar
export DSP_INSPECTION_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-inspection/${DSP_INSPECTION_JAR}
export DSP_INSPECTION_MEMORY=512m
export DSP_MINI_NAME=DSP_MINI_${DOMAIN}
export DSP_MINI_NAME=DSP-MINI${DOMAIN}
export DSP_MINI_IMAGE=${REGISTRY_HOST}dspmini:${DOMAIN}
export DSP_MINI_JAR=tuoheng_dsp_miniprogram.jar
export DSP_MINI_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-mini/${DSP_MINI_JAR}
export DSP_MINI_MEMORY=512m
export DSP_PORTAL_NAME=DSP_PORTAL_${DOMAIN}
export DSP_PORTAL_NAME=DSP-PORTAL${DOMAIN}
export DSP_PORTAL_IMAGE=${REGISTRY_HOST}dspportal:${DOMAIN}
export DSP_PORTAL_JAR=tuoheng_dsp_portal.jar
export DSP_PORTAL_REMOTE_JAR=/home/th/workspace/test/swarm/dockerfile/dsp-portal/${DSP_PORTAL_JAR}

View File

@ -40,23 +40,27 @@ docker run -d \
--name ${KAFKA_NAME} \
--network $NETWORK \
-p ${KAFKA_PORT}:9092 \
-e KAFKA_NODE_ID=1 \
-e KAFKA_PROCESS_ROLES=broker,controller \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:29093 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${HOST_IP}:${KAFKA_PORT} \
-e KAFKA_CONTROLLER_QUORUM_VOTERS=1@${KAFKA_NAME}:29093 \
-e KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e CLUSTER_ID=b8f3a0c1-1234-5678-9abc-def012345678 \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
-e KAFKA_NUM_PARTITIONS=3 \
-e KAFKA_AUTO_CREATE_TOPICS_ENABLE=true \
--memory ${KAFKA_MEMORY} --restart unless-stopped ${KAFKA_IMAGE}
-e KAFKA_CFG_NODE_ID=1 \
-e KAFKA_CFG_PROCESS_ROLES=broker,controller \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:29093 \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://${HOST_IP}:${KAFKA_PORT} \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@${KAFKA_NAME}:29093 \
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT \
-e KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-e KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_CFG_GROUP_INITIAL_REBALANCE_DELAY_MS=0 \
-e KAFKA_CFG_NUM_PARTITIONS=3 \
-e KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true \
-e KAFKA_CFG_LOG_RETENTION_HOURS=168 \
-e KAFKA_CFG_LOG_RETENTION_BYTES=-1 \
-e KAFKA_CFG_DELETE_TOPIC_ENABLE=true \
--memory ${KAFKA_MEMORY} \
--restart unless-stopped \
${KAFKA_IMAGE}
docker ps

View File

@ -3,8 +3,8 @@ FROM nginx:latest
# 删除默认的nginx配置
RUN rm -rf /etc/nginx/conf.d/*
# 复制vhosts配置到nginx配置目录
COPY vhosts/ /etc/nginx/conf.d/
# 复制temp_vhosts配置到nginx配置目录
COPY temp_vhosts/ /etc/nginx/conf.d/
# 复制SSL证书文件到nginx目录
COPY vhosts/cert/t-aaron.com.pem /etc/nginx/t-aaron.com.pem

View File

@ -29,9 +29,6 @@ if [ ! -f "vhosts/cert/t-aaron.com.pem" ] || [ ! -f "vhosts/cert/t-aaron.com.key
echo "Nginx容器的SSL功能可能无法正常工作"
fi
# 将替换后的配置文件复制到vhosts目录
cp -r $TEMP_DIR/* vhosts/
# 构建Docker镜像
echo "使用Dockerfile.nginx构建镜像..."
docker build -t ${NGINX_IMAGE} -f Dockerfile.nginx .

View File

@ -0,0 +1,21 @@
server {
listen 80;
listen 443 ssl;
server_name consul-bazhong.t-aaron.com;
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://CONSUL_bazhong:8500;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

View File

@ -0,0 +1,20 @@
server {
listen 80;
listen 443 ssl;
server_name minio-bazhong.t-aaron.com;
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://minio-bazhong.t-aaron.com:9000;
}
}

View File

@ -0,0 +1,20 @@
server {
listen 80;
listen 443 ssl;
server_name minioconsole-bazhong.t-aaron.com;
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://minio-bazhong.t-aaron.com:9001;
}
}

View File

@ -0,0 +1,21 @@
server {
listen 80;
listen 443 ssl;
server_name oidc-bazhong.t-aaron.com;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://172.19.0.10:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,21 @@
server {
listen 80;
listen 443 ssl;
server_name xxljob-bazhong.t-aaron.com;
# SSL证书配置
ssl_certificate /etc/nginx/t-aaron.com.pem;
ssl_certificate_key /etc/nginx/t-aaron.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://XXL_JOB_bazhong:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

View File

@ -6,4 +6,6 @@
### 我希望init中的每个服务都是通过一个脚本去启动,这些服务在网络环境中
#### 1.network.sh 是为了生成网络环境
#### 2.volumn.sh 是为了建立volumn,给服务用
### 在非docker swarm的环境中运行,在单机docker环境中运行
### 在非docker swarm的环境中运行,在单机docker环境中运行
### 要跟踪文件的变化,每次的提示都按照最新的文件分析
### 遇见需要执行的语句,在对话框中让我执行,你直接对执行结果进行分析