繁体   English   中英

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

[英]Environ variables in .env file in Django and docker

Hi I'm using Docker to build a Django web application for production via Docker-Compose and it uses the.env.prod file for the environmental variables. 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 中放置命令“复制”,该命令复制您的 local.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"]

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

暂无
暂无

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

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