【发布时间】:2019-08-02 18:29:49
【问题描述】:
我在 docker compose 中有两个服务 1. 一个应用程序和 2. db 服务(可以是 Mysql 或 Postgres)。根据在 compose 文件中为 db 服务设置的环境变量,我需要为 sqlalchemy 引擎创建 DATABASE_URI。如何在 app docker 容器中访问这些 ENV?
我正在尝试访问 docker-compose 文件中设置的环境,而不是 Dockerfile。
下面是我的 Docker-compose 文件的样子
version: "3.7"
services:
myapp:
image: ${TAG:-myapp}
build:
context: .
ports:
- "5000:5000"
docker_postgres:
image: "postgres:latest"
environment:
- POSTGRES_PASSWORD=postgres
ports:
- "5432:5432"
【问题讨论】:
-
您是否尝试过以与从 Python 访问任何其他环境变量相同的方式访问它?
-
是的,但一无所获。
-
那么请给minimal reproducible example。对于它的价值,我目前正在处理的项目将环境变量从我的环境中,通过撰写文件,进入容器,进入代码(主要是 JS,但我们确实有一些 Python)就好了。
-
我想在我的应用容器内的 compose 文件中为 db (for.eg postgres db) 设置多余的 env vars 以构造 database_uri。
标签: python docker docker-compose