Python ile Docker'da Ortam Değişkenleri Kullanımı

0 Réponses 3 Vues
·
Participants
Auteur de la discussion #1
[/QUOTE]

Python projelerinde Docker kullanırken, ortam değişkenleri (environment variables) uygulama yapılandırmasını esnek ve güvenli hale getirir. Bu değişkenler, örneğin API anahtarları, veritabanı bağlantı bilgileri veya uygulama ayarları gibi hassas bilgileri koddan ayırıp, farklı ortamlar arasında kolayca yönetmenize olanak tanır. Docker konteynerlerinde ortam değişkenlerini kullanmak, uygulamanın taşınabilirliğini artırır ve güvenlik açısından da avantaj sağlar.

Dockerfile içerisinde ortam değişkenlerini tanımlayabilirsiniz. Örneğin:

CODE
123
ENV APP_ENV=production
ENV DB_HOST=localhost


Ancak, genellikle bu değişkenler, docker run komutu veya docker-compose.yml dosyası aracılığıyla dışarıdan sağlanır. Örneğin, docker run ile ortam değişkenleri belirlemek için:

CODE
12
docker run -e APP_ENV=production -e DB_HOST=localhost my-python-app


Veya docker-compose.yml kullanılırsa:

CODE
12345678
version: '3'
services:
  app:
    image: my-python-app
    environment:
      APP_ENV: production
      DB_HOST: db.example.com


Python uygulamasında ise, ortam değişkenlerini okumak için os modülü kullanılır:

CODE
12345678
import os

app_env = os.getenv('APP_ENV', 'development')
db_host = os.getenv('DB_HOST', '127.0.0.1')

print(f"Environment: {app_env}")
print(f"Database Host: {db_host}")


Burada, os.getenv() fonksiyonu, ilk parametre olarak ortam değişkeninin adını alır ve ikinci parametre ile varsayılan değeri belirler. Bu sayede, ortam değişkeni tanımlı değilse bile uygulama güvenli bir şekilde çalışmaya devam eder.

Güvenlik açısından, hassas bilgilerin doğrudan Dockerfile veya kod içinde saklanmaması tavsiye edilir. Bunun yerine, ortam değişkenleri, CI/CD pipeline'ları veya gizli yönetim araçlarıyla sağlanmalı ve yönetilmelidir. Ayrıca, .env dosyası kullanarak da ortam değişkenlerini yönetmek yaygındır:

CODE
12345
[b].env dosyası[/b]
APP_ENV=production
DB_HOST=localhost
DB_SECRET=supersecret


Bu dosya, Docker Compose veya dotenv kitaplıklarıyla yüklenebilir.

Sonuç olarak, Docker ve Python entegrasyonunda ortam değişkenleri, yapılandırma yönetimini basitleştirir ve güvenliği artırır. Bu yöntemi doğru ve güvenli biçimde kullanmak, uygulamanızın farklı ortamlar arasında sorunsuz çalışmasını sağlar.

Vous devez être connecté pour répondre.

Utilisateurs qui consultent cette discussion (Total: 2, Membres: 2, Invités: 0)
Total: 2 (membres: 2, invités: 0)
0 citations sélectionnées