gpt4 book ai didi

python - Django 和 docker 中 .env 文件中的环境变量

转载 作者:行者123 更新时间:2023-12-04 15:29:50 25 4
gpt4 key购买 nike

您好,我正在使用 Docker 通过 Docker-Compose 构建用于生产的 Django Web 应用程序,它使用 .env.prod 文件作为环境变量。 docker-compose 文件工作正常,并通过 GitLab 上的 CI/CD 毫无问题地部署到服务器。

我希望使用相同类型的结构,但只有一个 .env.dev 文件,这样我就不必以任何方式修改设置文件。我遇到的问题是我找不到如何在开发模式下从外部文件设置环境变量。现在运行命令“python manage.py runserver”不会获取包含数据的 .env 文件。我能看到的唯一解决方法是有一个我希望避免的 local_settings.py 文件。下面是我在 settings.py 文件中尝试实现的示例。

DEBUG = int(os.environ.get("DEBUG", default=0))

带有 .env.dev 文件。

DEBUG=1
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 149.28.188.180 [::1]

提前致谢。我确定我错过了一些简单的东西。

最佳答案

您可以在本地 Dockerfile 中放置一个“复制”命令,复制本地 .env 文件以在 docker 容器中使用。例如:

FROM alpine:latest
RUN apk add --update \
nodejs \
nodejs-npm && rm -rf /var/cache/apk/*
COPY package.json /package.json
RUN npm i --silent --prod
#COPY .env /.env
COPY app.js /app.js
COPY bin/ /bin
COPY lib/ /lib
COPY server/ /server
COPY sql/ /sql
EXPOSE 3002
CMD ["npm","start"]

如您所见,只需取消注释带有“复制”命令的行,即可复制您的本地环境。

关于python - Django 和 docker 中 .env 文件中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61451304/

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