gpt4 book ai didi

docker-compose 设置环境变量不起作用

转载 作者:行者123 更新时间:2023-12-02 19:28:44 31 4
gpt4 key购买 nike

我用 docker并使用 docker-compose系每个容器。

在我的 python flask 代码中,像这样引用环境变量。

import os

from app import db, create_app


app = create_app(os.getenv('FLASK_CONFIGURATION') or 'development')

if __name__ == '__main__':
print(os.getenv('FLASK_CONFIGURATION'))
app.run(host='0.0.0.0', debug=True)

和 docker-compose.yml 这里。
version: '3.7'

services:
nginx:
build:
context: .
dockerfile: docker/nginx/dockerfile
container_name: nginx
hostname: nginx-prod
ports:
- '80:80'
networks:
- backend
links:
- web_project
depends_on:
- web_project
environment:
- FLASK_CONFIGURATION=production

mongodb:
build:
context: .
dockerfile: docker/mongodb/dockerfile
container_name: mongodb
hostname: mongodb-prod
ports:
- '27017:27017'
networks:
- backend

web_project:
build:
context: .
dockerfile: docker/web-prod/dockerfile
container_name: web_project
hostname: web_project_prod
ports:
- '5000:5000'
networks:
- backend
tty: true
depends_on:
- mongodb
links:
- mongodb
environment:
- FLASK_CONFIGURATION=production

networks:
backend:
driver: 'bridge'

我设置 FLASK_CONFIGURATION=production通过环境命令。

但是当我执行时,也许 FLASK_CONFIGURATION=production不起作用。

我也试过 ENV FLASK_CONFIGURATION production到每个 dockerfile。 (也不起作用)

奇怪的是,当我通过 bash(docker exec -it bash) 进入我的容器并使用导出检查环境变量时,它设置得很完美。

我的 docker 设置中有错误的代码吗?

谢谢。

最佳答案

[解决了]

是主管造成的。

使用supervisor时,它的外壳与原始外壳是隔离的。

所以我们必须在 supervisor.conf 中定义我们的环境变量

关于docker-compose 设置环境变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53717472/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com