Takip et

Flask Uygulamanızı Docker Compose ile Nasıl Dağıtırsınız?

Flask Uygulamanızı Docker Compose ile Nasıl Dağıtırsınız?

Merhaba, bu makalede Flask uygulamanızı Docker Compose kullanarak nasıl dağıtacağınızı adım adım açıklayacağız. Docker Compose, çoklu konteyner uygulamalarını tanımlamak ve yönetmek için kullanışlı bir araçtır. Bu sayede, uygulamanızın farklı bileşenlerini (örneğin web sunucusu, veritabanı, önbellek) ayrı konteynerlerde çalıştırabilir ve bunları kolayca yönetebilirsiniz.

Gereksinimler

* Docker ve Docker Compose kurulu olmalı. Kurulum bilgisi için [Docker’ın resmi web sitesini](https://www.docker.com/) ziyaret edebilirsiniz.
* Python 3 ve Flask kurulu olmalı.
* Bir Flask uygulaması.

1. Adım: Dockerfile Oluşturma

İlk adım, Flask uygulamanız için bir Dockerfile oluşturmaktır. Bu dosya, Docker’ın uygulamanızın konteynerini nasıl oluşturacağını tanımlar. İşte basit bir Dockerfile örneği:

“`dockerfile
FROM python:3.9-slim

WORKDIR /app

COPY requirements.txt .

RUN pip install –no-cache-dir -r requirements.txt

COPY . .

CMD [“python”, “app.py”]
“`

Bu Dockerfile şunları yapar:

* **FROM python:3.9-slim:** Python 3.9 tabanlı bir görüntü kullanır.
* **WORKDIR /app:** Çalışma dizinini `/app` olarak ayarlar.
* **COPY requirements.txt .:** `requirements.txt` dosyasını konteynere kopyalar.
* **RUN pip install –no-cache-dir -r requirements.txt:** `requirements.txt` dosyasında belirtilen bağımlılıkları yükler.
* **COPY . .:** Uygulama kodunu konteynere kopyalar.
* **CMD [“python”, “app.py”]:** Konteyner çalıştırıldığında `app.py` dosyasını çalıştırır.

2. Adım: Docker Compose Dosyası Oluşturma

Sonraki adım, Docker Compose dosyasını oluşturmaktır. Bu dosya, uygulamanızın farklı bileşenlerini tanımlayan bir yapılandırma dosyasıdır. İşte basit bir Docker Compose dosyası örneği:

“`yaml
version: ‘3.8’

services:
web:
build: .
ports:
– “5000:5000”
volumes:
– ./app:/app
depends_on:
– db

db:
image: postgres:14
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: database
“`

Bu Docker Compose dosyası şunları yapar:

* **version: ‘3.8’:** Docker Compose sürümünü belirtir.
* **services:** Uygulama bileşenlerini tanımlar.
* **web:** Flask uygulaması için bir hizmet tanımlar.
* **build: .:** Dockerfile’ı kullanarak bir görüntü oluşturur.
* **ports:** Konteynere 5000 portunu, ana makineye 5000 portuna eşler.
* **volumes:** Ana makinedeki `app` dizinini konteynerdeki `/app` dizinine eşler.
* **depends_on:** `db` hizmetine bağlı olduğunu belirtir.
* **db:** PostgreSQL veritabanı için bir hizmet tanımlar.
* **image:** PostgreSQL görüntüsünü kullanır.
* **environment:** Veritabanı için çevre değişkenlerini tanımlar.

3. Adım: Uygulamanızı Dağıtma

Docker Compose dosyası oluşturulduktan sonra, uygulamanızı dağıtmak için aşağıdaki komutları kullanabilirsiniz:

“`bash
docker-compose up -d
“`

Bu komut, Docker Compose dosyasındaki tüm hizmetleri arka planda çalıştırır. Uygulamanızı durdurmak için aşağıdaki komutu kullanabilirsiniz:

“`bash
docker-compose down
“`

4. Adım: Uygulamanıza Erişme

Uygulama dağıtıldıktan sonra, ana makinenizin 5000 portuna erişerek uygulamaya erişebilirsiniz. Örneğin, `http://localhost:5000` adresini tarayıcınızda ziyaret edebilirsiniz.

Ek İpuçları

* **Güvenlik:** Üretim ortamında, uygulamanızı güvenli bir şekilde dağıtmanız gerekir. Bunu, uygulamanızı güvenli bir ağ arkasına yerleştirerek, SSL sertifikası kullanarak veya diğer güvenlik önlemlerini alarak yapabilirsiniz.
* **Ölçeklenebilirlik:** Docker Compose, uygulamanızı ölçeklendirmek için de kullanılabilir. Örneğin, `web` hizmetini çoğaltmak için aşağıdaki komutu kullanabilirsiniz:

“`bash
docker-compose up -d –scale web=3
“`

Bu, `web` hizmetinden üç kopya çalıştıracaktır.

* **Monitörleme:** Uygulamanızı izlemek ve hataları ayıklamak için Prometheus, Grafana gibi araçlar kullanabilirsiniz.

Sonuç

Bu makalede, Flask uygulamanızı Docker Compose ile nasıl dağıtacağınızı öğrendiniz. Docker Compose, uygulamanızın farklı bileşenlerini yönetmek ve dağıtmak için çok kullanışlı bir araçtır. Docker Compose’un sunduğu özellikler sayesinde, uygulamalarınızı kolayca ölçeklendirebilir, güvenli hale getirebilir ve izleyebilirsiniz. Umarım bu makale sizin için faydalı olmuştur.

Daha fazla bilgi için [fatihsoysal.com](https://fatihsoysal.com) adresini ziyaret edebilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.