ShiftScheduler/Docker-README.md
copilot-swe-agent[bot] f769dbdd8c Fix Docker build authentication and SSL issues with comprehensive error handling and documentation
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
2025-08-27 18:00:10 +00:00

102 lines
No EOL
2.9 KiB
Markdown

# ShiftScheduler Docker Setup
This directory contains Docker configuration files for running the ShiftScheduler application in containers.
## Files
- `Dockerfile` - Main production dockerfile that uses local source files (recommended)
- `Dockerfile.production` - Alternative dockerfile that attempts to clone from GitHub repository
- `Dockerfile.local` - Development dockerfile that uses local source files
- `docker-compose.yml` - Docker Compose configuration for easy deployment
- `.dockerignore` - Files to exclude from Docker build context
## Usage
### Option 1: Using Local Source (Recommended)
```bash
# Build using local source files - most reliable approach
docker build -t shiftscheduler:latest .
# Run the container
docker run -p 5000:5000 shiftscheduler:latest
```
### Option 2: Using Docker Compose (Easiest)
```bash
# Start the application
docker-compose up --build
# Run in background
docker-compose up -d --build
# Stop the application
docker-compose down
```
### Option 3: Development Build
```bash
# Build for development
docker build -f Dockerfile.local -t shiftscheduler:dev .
# Run the container
docker run -p 5000:5000 shiftscheduler:dev
```
### Option 4: Git Repository Clone (May Fail in Restricted Environments)
```bash
# Build using git repository clone - may fail due to auth/SSL issues
docker build -f Dockerfile.production -t shiftscheduler:production .
# Run the container
docker run -p 5000:5000 shiftscheduler:production
```
## Accessing the Application
Once running, the application will be available at:
- http://localhost:5000
## Notes
- **Main Dockerfile**: Uses local source files for maximum reliability
- **Dockerfile.production**: Attempts to clone from GitHub but may fail in restricted environments
- **Dockerfile.local**: Same as main Dockerfile but with explicit naming for development
- The application runs on port 5000 inside the container
- Environment is set to Production by default in Docker containers
## Troubleshooting
### Git Clone Authentication Issues
If you encounter errors like:
```
fatal: could not read Username for 'https://github.com': No such device or address
```
This is common in Docker build environments with:
- Network restrictions
- SSL certificate verification issues
- Missing authentication credentials
**Solutions:**
1. **Use the main Dockerfile instead**: `docker build -t shiftscheduler .`
2. **Use Docker Compose**: `docker-compose up --build`
3. **Build with local files**: `docker build -f Dockerfile.local -t shiftscheduler .`
### SSL Certificate Issues
If you encounter SSL certificate errors:
1. Use the local source approach: `docker build -t shiftscheduler .`
2. Use Docker Compose: `docker-compose up --build`
3. Build with network host mode: `docker build --network=host -t shiftscheduler .`
### General Docker Issues
- Ensure no other service is using port 5000
- For development, use `docker build -f Dockerfile.local -t shiftscheduler .`
- Check Docker daemon is running and accessible