首页 文章

docker-compose没有用flask设置环境变量

提问于
浏览
2

运行flask容器,当我尝试读取环境变量时,它们不是由docker compose设置的 . 我正在使用docker-compose文件版本2

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重启

我用命令启动容器:

码头工具组成测试

我正在使用Docker for 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

谢谢您的帮助

1 回答

  • 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"])
    

相关问题