我在docker compose中有两个服务1.一个应用程序和2.db服务(可以是Mysql或Postgres)。根据在db服务的compose文件中设置的环境变量,我需要为sqlalchemy引擎创建DATABASE_URI。如何在app docker容器中访问这些ENV?
我试图访问docker-compose文件中的env set而不是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"
如果要构建自己的database_uri,则需要为postgres数据库设置环境变量。
environment:
POSTGRES_DB: dev
POSTGRES_USER: username
POSTGRES_PASSWORD: pw
@jonrsharpe你是说我可以做这样的事情?
services:
myapp:
image: ${TAG:-myapp}
build:
context: .
environment:
- DB_USER=postgres
- DB_PASSWORD=postgres
- DB_HOST=docker_postgres
ports:
- "5000:5000"
docker_postgres:
image: "postgres:latest"
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
ports:
- "5432:5432"```