繁体   English   中英

如何从 docker compose 文件访问环境变量

[英]how to access env variables from docker compose file

我在 docker compose 中有两个服务 1. 一个应用程序和 2. db 服务(可以是 Mysql 或 Postgres)。 根据在组合文件中为 db 服务设置的环境变量,我需要为 sqlalchemy 引擎创建 DATABASE_URI。 如何在应用程序 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"

如果要构建自己的 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"```

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM