1. Local
services:
database:
image: mariadb:latest
restart: always
ports:
- 3308:3306
environment:
MARIADB_ROOT_PASSWORD: my_cool_secret
MARIADB_DATABASE: springbootdb
volumes:
- mariadb_data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 10s
interval: 10s
timeout: 5s
retries: 3
networks:
- my-network
backend:
depends_on:
database:
condition: service_healthy
image: kudong/newspace-backend:latest
ports:
- 8080:8080
environment:
OPENAI_API_KEY: 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
SECRET_TOKEN: Newspace's token secret
OPENAI_MODEL: deepseek-r1-distill-qwen-32b
DB_USERNAME: root
DB_PASSWORD: my_cool_secret
DB_URL: jdbc:mariadb://database:3306/springbootdb?useUnicode=true&characterEncoding=utf-8&serverTimeZone=Asia/Seoul
volumes:
- "C:\\\\uploads:/newspace/uploads"
networks:
- my-network
frontend:
depends_on:
database:
condition: service_healthy
backend:
condition: service_started
image: kudong/newspace-frontend:latest
ports:
- 5173:80
environment:
BACKEND_IP: 127.0.0.1
BACKEND_PORT: 8080
networks:
- my-network
networks:
my-network:
driver: bridge
volumes:
mariadb_data:
2. Release Server
services:
backend:
image: newspace-backend:latest
ports:
- 8080:8080
environment:
OPENAI_API_KEY: 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
OPENAI_MODEL: deepseek-r1-distill-llama-70b
SECRET_TOKEN: Newspace's token secret
DB_USERNAME: lgcns
DB_PASSWORD: tldpsdptm
DB_URL: jdbc:mariadb://172.21.1.22:3306/springbootdb?useUnicode=true&characterEncoding=utf-8&serverTimeZone=Asia/Seoul
volumes:
- /home/lgcns/uploads:/newspace/uploads
networks:
- my-network
frontend:
depends_on:
- backend
image: newspace-frontend:latest
ports:
- 5173:80
environment:
BACKEND_IP: kudong.kr
BACKEND_PORT: 55021
networks:
- my-network
networks:
my-network:
driver: bridge
3. ECR + EC2
Eureka + Gateway
services:
newspace-eureka:
image: 803691999553.dkr.ecr.us-east-1.amazonaws.com/mini-project-9/newspace-eureka:latest
ports:
- 8070:8070
environment:
SPRING_CONFIG_IMPORT: <http://34.230.80.208:8888/>
SPRING_APPLICATION_NAME: newspace-eureka
SPRING_APPLICATION_PORT: 8070
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: <http://3.82.228.233:8070/eureka/>
EUREKA_INSTANCE_PREFER_IP_ADDRESS: true
networks:
- my-network
newspace-gateway:
depends_on:
newspace-eureka:
condition: service_started
image: 803691999553.dkr.ecr.us-east-1.amazonaws.com/mini-project-9/newspace-gateway:latest
ports:
- 8072:8072
environment:
SPRING_CONFIG_IMPORT: <http://34.230.80.208:8888/>
SPRING_APPLICATION_NAME: newspace-gateway
SPRING_APPLICATION_PORT: 8072
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: <http://3.82.228.233:8070/eureka/>
EUREKA_INSTANCE_PREFER_IP_ADDRESS: true
networks:
- my-network
networks:
my-network:
driver: bridge
Config Service + RabbitMQ
services:
rabbitmq:
image: rabbitmq:4.0-management
container_name: newspace-rabbitmq
ports:
- "5671:5671"
- "15671:15671"
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
networks:
my-network:
newspace-config-service:
image: 803691999553.dkr.ecr.us-east-1.amazonaws.com/mini-project-9/newspace-config-service:latest
container_name: newspace-config-service
ports:
- "8888:8888"
environment:
RABBITMQ_HOST: 34.230.80.208
networks:
my-network:
networks:
my-network:
driver: bridge