gpt4 book ai didi

python-3.x - 尽管在同一目录中,但 .env 文件内容在 docker compose 构建期间未被替换

转载 作者:行者123 更新时间:2023-12-03 06:12:35 25 4
gpt4 key购买 nike

我的 docker-compose.yaml 文件如下:

services:
planview:
build:
context: .
dockerfile: Dockerfile
container_name: planview
environment:
- AZURE_TENANT_ID=${AZURE_TENANT_ID}
- AZURE_CLIENT_ID=${AZURE_CLIENT_ID}
- AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET}

所有内容都在一个目录中,因此这不会成为问题。

在我的 Python 脚本中,我还使用以下代码检索凭据

load_dotenv(".env")
client_id = os.getenv('AZURE_CLIENT_ID')
tenant_id = os.getenv('AZURE_TENANT_ID')
client_secret = os.getenv('AZURE_CLIENT_SECRET')

运行docker compose up时,会创建镜像、运行容器并执行脚本。仅当我尝试使用 docker compose build 创建具有凭据的镜像以便拥有该凭据的任何人都可以运行时,才会收到错误

ValueError: client_id should be the id of an Azure Active Directory application

我的 docker-compose 文件肯定有问题,但我看不到错误在哪里,或者是否遗漏了某些内容。我也尝试过 env_file: 但没有成功。提供的凭据绝对有效。

有人知道问题出在哪里吗?

编辑:

Dockerfile 是

FROM python:3.10

ADD planview.py .

WORKDIR /code

COPY ./requirements.txt /code/requirements.txt

RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

COPY . /code/app

CMD ["python3", "/planview.py"]

最佳答案

尝试在 Dockerfile 中添加这些变量,以便它在运行时可用。应该看起来像这样:

COPY . /code/app

# Set the environment variables
ENV AZURE_TENANT_ID=""
ENV AZURE_CLIENT_ID=""
ENV AZURE_CLIENT_SECRET=""

CMD ["python3", "/planview.py"]

关于python-3.x - 尽管在同一目录中,但 .env 文件内容在 docker compose 构建期间未被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76584072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com