jangular-cli
Version:
A powerful CLI tool for rapidly bootstrapping enterprise-grade Angular 17 & Spring Boot (Java 21) applications with integrated security, authentication, database management, and Docker support.
123 lines (115 loc) • 2.67 kB
YAML
version: '3.8'
services:
# Backend Spring Boot Application
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: app-backend
environment:
- SERVER_PORT=8080
- SPRING_PROFILES_ACTIVE=docker
ports:
- "8080:8080"
depends_on:
mysql:
condition: service_healthy
postgres:
condition: service_healthy
restart: unless-stopped
networks:
- app-network
# Frontend Angular Application
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: app-frontend
ports:
- "4200:4200"
depends_on:
- backend
restart: unless-stopped
networks:
- app-network
# MySQL Database
mysql:
image: mysql:8.0
container_name: app-mysql
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=appdb
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
restart: unless-stopped
networks:
- app-network
# MySQL GUI - phpMyAdmin
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: app-phpmyadmin
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- MYSQL_ROOT_PASSWORD=rootpassword
ports:
- "8081:80"
depends_on:
- mysql
restart: unless-stopped
networks:
- app-network
# PostgreSQL Database
postgres:
image: postgres:15
container_name: app-postgres
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=appdb
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
restart: unless-stopped
networks:
- app-network
# PostgreSQL GUI - pgAdmin
pgadmin:
image: dpage/pgadmin4:latest
container_name: app-pgadmin
environment:
- PGADMIN_DEFAULT_EMAIL=admin@admin.com
- PGADMIN_DEFAULT_PASSWORD=admin
- PGADMIN_CONFIG_SERVER_MODE=False
ports:
- "8082:80"
volumes:
- pgadmin-data:/var/lib/pgadmin
depends_on:
- postgres
restart: unless-stopped
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
mysql-data:
postgres-data:
pgadmin-data: