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

0 Ответы 3 Просмотры
·
Участники
Автор темы #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:

КОД
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:

КОД
12
docker run -e APP_ENV=production -e DB_HOST=localhost my-python-app


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

КОД
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:

КОД
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:

КОД
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.

Чтобы ответить, необходимо войти в систему.

0 цитат выбрано