如何从docker compose文件中访问env变量

问题描述 投票:-1回答:2

我在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"
python docker docker-compose
2个回答
0
投票

如果要构建自己的database_uri,则需要为postgres数据库设置环境变量。

environment:
POSTGRES_DB: dev
POSTGRES_USER: username
POSTGRES_PASSWORD: pw

0
投票

@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"```
© www.soinside.com 2019 - 2024. All rights reserved.