🐳Docker Deployment Guide for OASIS Ecosystem

Overview

This guide covers Docker deployment for all OASIS ecosystem components:

  • OASIS API Web API (.NET 8)

  • STAR API Web API (.NET 9)

  • OASIS OPORTAL (.NET 8 + React)

  • STAR WEB UI (.NET 8 + React)

  • OASIS WEB UI (React + Nginx)

Prerequisites

  • Docker Desktop installed

  • Docker Compose installed

  • Git repository cloned

🚀 Quick Start

1. Build All Images

# Build all services
docker-compose build

# Or build specific service
docker-compose build oasis-api
docker-compose build star-api
docker-compose build oasis-oportal
docker-compose build star-web-ui

2. Run All Services

3. Access Services

  • OASIS API: http://localhost:5000

  • STAR API: http://localhost:5001

  • OASIS OPORTAL: http://localhost:5002

  • STAR WEB UI: http://localhost:5003

  • OASIS WEB UI: http://localhost:3000

📋 Individual Service Deployment

OASIS API Web API (.NET 8)

STAR API Web API (.NET 9)

OASIS OPORTAL (.NET 8 + React)

STAR WEB UI (.NET 8 + React)

OASIS WEB UI (React + Nginx)

🔧 Configuration

Environment Variables

Create a .env file in the root directory:

Custom Ports

Modify docker-compose.yml to change ports:

🏗️ Production Deployment

1. Docker Swarm

2. Kubernetes

3. Cloud Platforms

Railway

  • Push to GitHub

  • Connect repository to Railway

  • Railway auto-detects Dockerfiles

AWS ECS

  • Build and push to ECR

  • Create ECS task definitions

  • Deploy using ECS service

Azure Container Instances

  • Build and push to ACR

  • Deploy using Azure CLI

📊 Monitoring & Health Checks

Health Check Endpoints

  • OASIS API: /api/health

  • STAR API: /api/health

  • OPORTAL: /

  • STAR WEB UI: /

  • OASIS WEB UI: /health

Logs

Resource Monitoring

🔒 Security Best Practices

1. Use Multi-stage Builds

All Dockerfiles use multi-stage builds to minimize image size.

2. Non-root User

3. Security Scanning

4. Secrets Management

🚨 Troubleshooting

Common Issues

Build Failures

Port Conflicts

Memory Issues

Database Connection

Debug Commands

📈 Performance Optimization

1. Image Optimization

  • Use Alpine Linux base images

  • Multi-stage builds

  • Remove unnecessary packages

2. Caching

  • Layer caching for faster builds

  • Use .dockerignore files

  • Order Dockerfile commands by frequency of change

3. Resource Limits

🔄 CI/CD Integration

GitHub Actions

GitLab CI

📚 Additional Resources


Happy Containerizing! 🐳

Last updated