小编cho*_*opa的帖子

Docker-compose 不将环境变量传递给 docker 容器

我有一个使用环境变量的 Python 应用程序,我想使用一个 Dockerfile 和一个 docker-compose.yml 文件进行 dev\prod 设置(仅使用环境变量更改 env 文件)。

以下是我用来启动应用程序的文件:
Dockerfile

FROM python:3.7-slim-buster
RUN apt-get update

WORKDIR /usr/src/app
RUN mkdir /usr/src/app/excel_users_dump
COPY ./requirements.txt .
RUN pip install -r requirements.txt

COPY . .
RUN python /usr/src/app/myblumbot/main.py
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

version: '3'
services:
  bot:
    build:
      context: .
    environment:
      ENV: ${ENV}
      PYTHONPATH: ${PYTHONPATH}
      PYTHONBUFFERED: ${PYTHONBUFFERED}
    volumes:
      - states:/var/myblumbot_states

volumes:
  states:
Run Code Online (Sandbox Code Playgroud)

.env(在与 docker-compose.yml 相同的目录中)

PYTHONBUFFERED=1  
PYTHONPATH=/usr/src/app  
ENV=DEV
Run Code Online (Sandbox Code Playgroud)

当我运行 docker-compose up 命令时,它会构建并告诉我我没有一些环境变量,因此应用程序无法启动。

env = os.environ['ENV'] 
Run Code Online (Sandbox Code Playgroud)

密钥错误:'ENV'

但是,如果我添加ENV VAR valueDockerfile,一切工作良好。 …

docker docker-compose

10
推荐指数
2
解决办法
6605
查看次数

标签 统计

docker ×1

docker-compose ×1