嗨,我正在使用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]
先谢谢了。我确定我容易错过一些事情。
答案 0 :(得分:0)
您可以在本地Dockerfile中放置命令“ copy”,该命令复制您的本地.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"]
如您所见,只需使用“ copy”命令取消注释该行,即可复制您的本地环境。