2016-04-27 77 views
1

我從使用虛擬機軟件切換到Docker。我從我的開發環境開始。Django和Docker:管理生產和開發環境之間的依賴關係

我曾經讓我的設置文件在base.pydev.pyprod.py之間分開。 prod.py有一些應用程序,我不需要在開發過程中,如newrelic /錯誤跟蹤器和DEBUG=False

你如何管理這與碼頭?您使用不同的設置構建多個圖像?還是有更好的解決方案來管理這個?

這裏是docker-compose.yml文件我用:

version: '2' 
services: 
    db: 
    image: postgres 
    environment: 
     POSTGRES_USER: 'user' 
     POSTGRES_PASSWORD: 'pass' 
     POSTGRES_DB: 'name' 
    web: 
    build: ./project 
    image: project 
    command: /usr/local/bin/gunicorn project.wsgi:application -w 2 -b :8000 --reload 
    ports: 
     - "8000:8000" 
    depends_on: 
     - db 

回答

2

您可以控制應用程序的與主機採取泊塢窗撰寫的variable substitution功能的優勢環境變量的所有行爲。例如POSTGRES_USER,POSTGRES_PASSWORD可以在開發機器和部署機器中用不同的值定義爲環境變量。 也可以有兩個不同的構建圖像中定義並使用每一個依賴於環境變量

build: ./project-${HOST} 

project-dev具有Dockerfile與dev的依賴關係,並在另一project-deploy Dockerfile。

+0

它完美的作品:)謝謝。 –