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