generateDockerComposeProduction static method

String generateDockerComposeProduction(
  1. String projectName
)

Implementation

static String generateDockerComposeProduction(String projectName) {
  return '''
version: '3.8'

services:
# Flutter Web App
web:
  build:
    context: .
    dockerfile: Dockerfile
  container_name: ${projectName}_web
  ports:
    - "80:80"
  restart: unless-stopped
  depends_on:
    - postgres
    - redis
  environment:
    - NODE_ENV=production
  networks:
    - app-network

# PostgreSQL Database
postgres:
  image: postgres:16-alpine
  container_name: ${projectName}_postgres
  environment:
    POSTGRES_DB: ${projectName}_db
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: your_secure_password_here
  volumes:
    - postgres_data:/var/lib/postgresql/data
  ports:
    - "5432:5432"
  restart: unless-stopped
  networks:
    - app-network

# Redis Cache
redis:
  image: redis:7-alpine
  container_name: ${projectName}_redis
  ports:
    - "6379:6379"
  restart: unless-stopped
  volumes:
    - redis_data:/data
  command: redis-server --appendonly yes
  networks:
    - app-network

# pgAdmin (Database Management)
pgadmin:
  image: dpage/pgadmin4:latest
  container_name: ${projectName}_pgadmin
  environment:
    PGADMIN_DEFAULT_EMAIL: admin@example.com
    PGADMIN_DEFAULT_PASSWORD: admin
  ports:
    - "5050:80"
  restart: unless-stopped
  depends_on:
    - postgres
  networks:
    - app-network
  profiles:
    - tools

volumes:
postgres_data:
redis_data:

networks:
app-network:
  driver: bridge
''';
}