2017-06-06 40 views
2

運行燒瓶容器,當我嘗試讀取環境變量時,它們不是由docker compose設置的。我正在使用碼頭構成文件版本2docker-compose沒有設置燒瓶的環境變量

compose file: 
    services: 
     test 
      build: ./test 
      image: test:1.0 
      container_name: test_flask 
      ports: 
        - "80:80" 
      env_file: .env 
      environment: 
        - COUCHDB=http://192.168.99.100:5984 
      depends_on: 
        - couchdb 

我已經嘗試使用env_file和環境指令? 我也試圖把值放在雙引號,單引號,沒有引號,沒有工作。 的.ENV文件包含:

COUCHDB="http://192.168.99.100:5984", also tried without quotes 

然後我讀了Python代碼中的變量是這樣的:

COUCH_SERVER = os.environ["COUCHDB"] 

我也試過 os.environ.get( 'CouchDB的')

沒有工作。

服務器從Dockerfile開始是這樣的:

CMD服務的Apache2重啓

我用命令啓動容器:

碼頭工人,組成了測試

我使用泊塢窗對於Windows版本的工具箱:

Client: 
Version:  1.13.1 
API version: 1.26 
Go version: go1.7.5 
Git commit: 092cba3 
Built:  Wed Feb 8 08:47:51 2017 
OS/Arch:  windows/amd64 

Server: 
Version:  17.04.0-ce 
API version: 1.28 (minimum version 1.12) 
Go version: go1.7.5 
Git commit: 4845c56 
Built:  Wed Apr 5 18:45:47 2017 
OS/Arch:  linux/amd64 
Experimental: false 

謝謝你的幫助

+0

什麼是您撰寫文件的第一行?你使用的是什麼版本? 「docker-compose config」的輸出是什麼?我複製了你的版本,在第一行添加了'version:'2''並且看到了你的環境變量 – n2o

+0

如果你打印所有的env變量,你會看到什麼? 'docker-compose exec test env' – Robert

+0

docker-compose file的第一行是[version:'2'] docker-compose config:test: build: context:D:\ dev \ uploader container_name:test_flask depends_on: - CouchDB的 環境: CouchDB的:http://192.168.99.100:5984 圖像:測試:1.0 端口: - 80:80 版本: '2.0' – Mezin

回答

1

我給你留下了一個如何從應用程序獲取環境變量的例子。

泊塢窗,compose.yml

version: '2' 

services: 
    app: 
     image: python:2.7 
     environment: 
     - BAR=FOO 
     volumes: 
     - ./app.py:/app.py 
     command: python app.py 

app.py

import os 

print(os.environ["BAR"]) 
+0

謝謝大家的回覆,可惜我不懂你的意思是「這個項目是你應該做的,以獲得環境的價值。」 – Mezin

+0

對不起,我正在學習這門語言。 – German