Fix tools/call routing and dependency injection for MSA architecture
This commit is contained in:
86
create_docker.py
Normal file
86
create_docker.py
Normal file
@@ -0,0 +1,86 @@
|
||||
import os
|
||||
|
||||
modules = {
|
||||
"axhub-gateway": 8081,
|
||||
"axhub-tool-sms": 8082,
|
||||
"axhub-tool-email": 8083,
|
||||
"axhub-tool-other": 8084
|
||||
}
|
||||
|
||||
# 1. Create Dockerfiles
|
||||
dockerfile_template = """FROM eclipse-temurin:21-jdk-alpine
|
||||
WORKDIR /app
|
||||
COPY build/libs/{module}-0.0.1-SNAPSHOT.jar app.jar
|
||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
||||
"""
|
||||
|
||||
for module in modules:
|
||||
with open(f"{module}/Dockerfile", "w") as f:
|
||||
f.write(dockerfile_template.format(module=module))
|
||||
|
||||
# 2. Create application.properties for tool modules
|
||||
for module, port in modules.items():
|
||||
if module == "axhub-gateway":
|
||||
continue
|
||||
|
||||
res_dir = f"{module}/src/main/resources"
|
||||
os.makedirs(res_dir, exist_ok=True)
|
||||
with open(f"{res_dir}/application.properties", "w") as f:
|
||||
f.write(f"server.port={port}\n")
|
||||
f.write("spring.application.name=" + module + "\n")
|
||||
|
||||
# 3. Create docker-compose.yml
|
||||
compose_content = """version: '3.8'
|
||||
|
||||
services:
|
||||
redis:
|
||||
image: redis:latest
|
||||
ports:
|
||||
- "6379:6379"
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
|
||||
gateway:
|
||||
build:
|
||||
context: ./axhub-gateway
|
||||
ports:
|
||||
- "8081:8081"
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SPRING_REDIS_HOST=redis
|
||||
- SPRING_REDIS_PORT=6379
|
||||
|
||||
tool-sms:
|
||||
build:
|
||||
context: ./axhub-tool-sms
|
||||
ports:
|
||||
- "8082:8082"
|
||||
depends_on:
|
||||
- redis
|
||||
|
||||
tool-email:
|
||||
build:
|
||||
context: ./axhub-tool-email
|
||||
ports:
|
||||
- "8083:8083"
|
||||
depends_on:
|
||||
- redis
|
||||
|
||||
tool-other:
|
||||
build:
|
||||
context: ./axhub-tool-other
|
||||
ports:
|
||||
- "8084:8084"
|
||||
depends_on:
|
||||
- redis
|
||||
"""
|
||||
|
||||
with open("docker-compose.yml", "w") as f:
|
||||
f.write(compose_content)
|
||||
|
||||
print("Docker configurations generated.")
|
||||
Reference in New Issue
Block a user