chore: add dev configs and local infrastructure

This commit is contained in:
2026-07-06 17:22:58 +08:00
parent 6662a572e5
commit 285edf9927
4 changed files with 139 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
spring:
datasource:
url: jdbc:mysql://localhost:3306/sino_mci?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
data:
redis:
host: localhost
port: 6379
database: 0
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
flyway:
enabled: true
locations: classpath:db/migration
baseline-on-migrate: true

View File

@@ -0,0 +1,26 @@
server:
port: 8080
servlet:
context-path: /msg-platform
spring:
application:
name: mci-server
jackson:
default-property-inclusion: non_null
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
global-config:
db-config:
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
management:
endpoints:
web:
exposure:
include: health,info

View File

@@ -0,0 +1,43 @@
version: '3.8'
services:
mysql:
image: mysql:8.0.36
container_name: mci-mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: sino_mci
ports:
- "3306:3306"
volumes:
- mci-mysql-data:/var/lib/mysql
redis:
image: redis:7.2
container_name: mci-redis
ports:
- "6379:6379"
rabbitmq:
image: rabbitmq:3.13-management
container_name: mci-rabbitmq
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
ports:
- "5672:5672"
- "15672:15672"
seaweedfs:
image: chrislusf/seaweedfs:3.62
container_name: mci-seaweedfs
ports:
- "9333:9333"
- "8888:8888"
command: server -dir=/data
volumes:
- mci-seaweedfs-data:/data
volumes:
mci-mysql-data:
mci-seaweedfs-data:

50
scripts/local-up.sh Executable file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR/.."
echo "Starting local infrastructure..."
docker compose -f infrastructure/docker-compose.yml up -d
echo "Waiting for MySQL..."
MAX_RETRIES=60
RETRY_COUNT=0
until docker exec mci-mysql mysql -uroot -proot -e "SELECT 1" > /dev/null 2>&1; do
RETRY_COUNT=$((RETRY_COUNT + 1))
if [ "$RETRY_COUNT" -ge "$MAX_RETRIES" ]; then
echo "Error: MySQL did not become ready within ${MAX_RETRIES} seconds." >&2
exit 1
fi
sleep 1
done
echo "Waiting for Redis..."
MAX_RETRIES=30
RETRY_COUNT=0
until docker exec mci-redis redis-cli ping | grep -q "PONG"; do
RETRY_COUNT=$((RETRY_COUNT + 1))
if [ "$RETRY_COUNT" -ge "$MAX_RETRIES" ]; then
echo "Error: Redis did not become ready within ${MAX_RETRIES} seconds." >&2
exit 1
fi
sleep 1
done
echo "Waiting for RabbitMQ..."
MAX_RETRIES=30
RETRY_COUNT=0
until curl -s -o /dev/null -w "%{http_code}" http://guest:guest@localhost:15672/api/overview | grep -q "200"; do
RETRY_COUNT=$((RETRY_COUNT + 1))
if [ "$RETRY_COUNT" -ge "$MAX_RETRIES" ]; then
echo "Error: RabbitMQ did not become ready within ${MAX_RETRIES} seconds." >&2
exit 1
fi
sleep 1
done
echo "Local infrastructure is ready."
echo "MySQL: jdbc:mysql://localhost:3306/sino_mci"
echo "Redis: localhost:6379"
echo "RabbitMQ: localhost:5672 / http://localhost:15672"
echo "SeaweedFS: http://localhost:9333"