-
Copy environment file:
cp .env.example .env
-
Build and start services:
docker-compose up --build
-
Run migrations (in another terminal):
docker-compose exec web python manage.py migrate -
Create superuser (optional):
docker-compose exec web python manage.py createsuperuser -
Access the application:
- Web: http://localhost:8001
- Admin: http://localhost:8001/admin/
- Elasticsearch: http://localhost:9200
- web: Django application (Python 2.7 + Django 1.8)
- db: PostgreSQL 12
- redis: Redis 6 (for Celery)
- elasticsearch: Elasticsearch 1.7.6 (matching original version)
docker-compose updocker-compose up -ddocker-compose downdocker-compose logs -f webdocker-compose exec web python manage.py <command>docker-compose exec web py.test tests/docker-compose exec web python manage.py shelldocker-compose build web
docker-compose updocker-compose exec db psql -U hellobase -d hellobaseIf port 8001, 5432, 6379, or 9200 is already in use, edit docker-compose.yml to change the port mapping.
Ensure the DATABASE_URL in .env matches the docker-compose.yml configuration.
Elasticsearch 1.7.6 may require more memory. Increase Docker's memory limit in Docker Desktop settings.
As we progress through Django upgrades, the Dockerfile will be updated to reflect:
- Hop 1: Still Python 2.7, Django 1.11
- Hop 2: Python 3.11+, Django 1.11
- Hop 3+: Python 3.11+, Django 2.2 → 4.2
Each hop will be tested in this Docker environment before committing changes.