Bu belge, Odak projesini Docker Compose kullanarak kurma ve çalıştırma talimatlarını içerir. Proje; backend, veritabanı, RabbitMQ, Celery, Redis, Elasticsearch ve Kibana gibi birden çok servisi barındırmaktadır.
-
Docker ve Docker Compose Kurulumu:
- Sisteminizde Docker ve Docker Compose'un kurulu olduğundan emin olun.
- Docker Kurulumu
- Docker Compose Kurulumu
-
Depoyu Klonlama:
git clone [https://github.com/icarus-odak/backend.git](https://github.com/icarus-odak/backend.git) cd backend/odak_docker -
Ortam Değişkenleri:
odak_dockerdizininde gerekli ortam değişkenlerini içeren bir.envdosyası oluşturun.
-
Kurulum Betiğini Çalıştırma:
-
Servisleri kurmak ve başlatmak için sağlanan
setup_and_run.shbetiğini kullanın:bash setup_and_run.sh
-
Bu betik, servisleri otomatik olarak derleyip başlatacak ve gerekli veritabanı migrasyonlarını çalıştıracaktır.
-
-
Manuel Adımlar (İsteğe Bağlı):
-
Eğer manuel kurulumu tercih ederseniz, şu adımları izleyin:
# Veritabanı servisini derleyip başlatın docker compose up -d db --build # Veritabanının başlaması için bekleyin sleep 10 # Diğer tüm servisleri derleyip başlatın docker compose up -d --build # Backend konteynerında migrasyonları çalıştırın docker exec odak_backend python manage.py makemigrations docker exec odak_backend python manage.py makemigrations content docker exec odak_backend python manage.py migrate --noinput
-
- Servis Adı:
db - Açıklama: Uygulama verilerini depolar ve vektör tabanlı işlemleri destekler.
- Servis Adı:
backend - Açıklama: Django backend uygulaması.
- Portlar:
8008:8000
- Servis Adı:
rabbitmq - Açıklama: Celery görevleri için mesaj kuyruğu (message broker).
- Servis Adı:
celery - Açıklama: Asenkron görevleri yürütür.
- Servis Adı:
celery-beat - Açıklama: Periyodik görevler için zamanlayıcı.
- Servis Adı:
redis - Açıklama: Web soketi ve verimli istek yönetimi için kullanılan bellek içi veri deposu.
- Servis Adı:
elasticsearch - Açıklama: Logları indeksler.
- Servis Adı:
kibana - Açıklama: Elasticsearch verileri için görselleştirme aracı.
- Portlar:
5601
- Servis Adı:
filebeat - Açıklama: Elasticsearch için log gönderici (log shipper).
-
Logları Görüntüleme:
docker compose logs -f
-
Bir Servis Kabuğuna Erişme:
docker exec -it <servis_adı> bash
-
Servisleri Durdurma:
docker compose down
-
Tüm Konteynerları Kaldırma:
docker ps -a -q | xargs docker rm -f -
Tüm Volümleri Kaldırma:
docker volume prune