Add development docker-compose file and documentation for testing without Caddy
This commit is contained in:
65
README-dev.md
Normal file
65
README-dev.md
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# Development Setup
|
||||||
|
|
||||||
|
This document describes how to set up and run the Markov Economics application in a development environment.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Docker
|
||||||
|
- Docker Compose
|
||||||
|
|
||||||
|
## Development Environment
|
||||||
|
|
||||||
|
For development purposes, we provide a separate Docker Compose configuration that runs the application without Caddy:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start the development environment
|
||||||
|
docker-compose -f docker-compose-dev.yml up -d
|
||||||
|
|
||||||
|
# Stop the development environment
|
||||||
|
docker-compose -f docker-compose-dev.yml down
|
||||||
|
```
|
||||||
|
|
||||||
|
The application will be available at http://localhost:5000
|
||||||
|
|
||||||
|
## Differences from Production
|
||||||
|
|
||||||
|
The development setup differs from the production setup in the following ways:
|
||||||
|
|
||||||
|
1. Direct access to the application on port 5000 (no Caddy reverse proxy)
|
||||||
|
2. Development mode enabled (FLASK_ENV=development)
|
||||||
|
3. Source code mounted as a volume for live reloading during development
|
||||||
|
4. No SSL/TLS encryption (HTTP only)
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
If you encounter port conflicts:
|
||||||
|
|
||||||
|
1. Check what's running on port 5000:
|
||||||
|
```bash
|
||||||
|
lsof -i :5000
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Stop any conflicting processes:
|
||||||
|
```bash
|
||||||
|
pkill -f "python.*run.py"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Stop any conflicting Docker containers:
|
||||||
|
```bash
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing the Wealth Distribution Fix
|
||||||
|
|
||||||
|
The recent fix for the wealth distribution histogram ensures that:
|
||||||
|
|
||||||
|
1. The backend correctly calculates agent wealth using the proper accessor methods
|
||||||
|
2. The frontend properly handles and displays distribution data
|
||||||
|
3. Debug logging is available to troubleshoot data flow issues
|
||||||
|
|
||||||
|
To test the fix:
|
||||||
|
|
||||||
|
1. Start the development environment
|
||||||
|
2. Navigate to http://localhost:5000
|
||||||
|
3. Start a simulation with default parameters
|
||||||
|
4. Observe the wealth distribution histogram populating with data
|
29
docker-compose-dev.yml
Normal file
29
docker-compose-dev.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
services:
|
||||||
|
markov-economics-dev:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- "5000:5000"
|
||||||
|
environment:
|
||||||
|
- FLASK_ENV=development
|
||||||
|
- FLASK_APP=run.py
|
||||||
|
- PYTHONUNBUFFERED=1
|
||||||
|
volumes:
|
||||||
|
# Mount source code for development
|
||||||
|
- .:/app
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:5000/health', timeout=2)"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
networks:
|
||||||
|
- markov-network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
markov-network:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
markov-data:
|
||||||
|
driver: local
|
Reference in New Issue
Block a user