- Docker Desktop installed (Download)
- Docker Compose (included with Docker Desktop)
- Navigate to project root:
cd d:\sign-language-translator- Build containers:
docker-compose build- Start services:
docker-compose up -d- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Stop services:
docker-compose downBuild backend image:
docker build -t sign-lang-backend ./backendRun backend container:
docker run -p 5000:5000 sign-lang-backendBuild frontend image:
docker build -t sign-lang-frontend ./frontendRun frontend container:
docker run -p 3000:3000 sign-lang-frontend- Image: Built from
./backend/Dockerfile - Port: 5000
- Environment: Production mode
- Restart Policy: Unless stopped
- Image: Built from
./frontend/Dockerfile - Port: 3000
- Environment: Production mode with API URL pointing to backend
- Dependencies: Waits for backend service
- Restart Policy: Unless stopped
FLASK_ENV=production
DEBUG=False
REACT_APP_API_URL=http://localhost:5000
NODE_ENV=production
docker-compose psdocker-compose logs backend
docker-compose logs frontend
docker-compose logs -f # Follow logsdocker-compose exec backend bash
docker-compose exec frontend shdocker-compose down --rmi alldocker-compose up -d --build backendIf port 3000 or 5000 is already in use, modify docker-compose.yml:
ports:
- "3001:3000" # Map to different portCheck logs:
docker-compose logs backend
docker-compose logs frontenddocker system prune -aFor development with hot reload, use volumes in docker-compose.yml (already configured in backend service).
For production, consider:
- Using environment-specific docker-compose files
- Adding health checks
- Using secrets management
- Setting up CI/CD pipelines
- Using container registries
project/
├── docker-compose.yml # Orchestration config
├── .env.docker # Docker environment variables
├── backend/
│ ├── Dockerfile # Python backend image
│ ├── .dockerignore # Files to exclude
│ └── ...
└── frontend/
├── Dockerfile # React frontend image
├── .dockerignore # Files to exclude
└── ...