簡體   English   中英

在docker-compose中使用命令導出后,bash中沒有env變量

[英]No env variables in bash after exported with command in docker-compose

我有一個serverless.yml文件,它定義了環境變量。 為了在docker容器中的本地階段使用這些文件,我使用了無服務器dotenv插件 ,以便將它們導出到.env文件。 我在docker-compose.yml中執行此操作,我也在該文件中導出了變量。 當我的django設置可以訪問它們時,它可以工作。

command: >
  bash -c "sls dotenv -s local
  && export $$(grep -v '^#' .serverless/.env | xargs -d '\n')
  && python manage.py makemigrations ingredients"

但是,如果我猛撲到容器中或運行命令,則環境變量不再可用:

docker-compose exec name python manage.py createsuperuser

我想念什么?

執行時環境變量不可用,因為它們不是同一執行的一部分。 您正在將過程分支為不附加。 我要做的是創建一個文件profile ,其中包含您需要的環境變量。 將其復制到根目錄(或執行此操作的任何用戶)作為.profile主目錄,您應該一切順利。

根據喬治·阿普爾頓的回答,我已經將已經使用的導出命令添加到了.bashrc並使用了docker-compose.yml的以下命令:

echo 'export $$(grep -v \"^#\" .serverless/.env | xargs -d \"\n\")' > /root/.bashrc

如果我現在執行bash,則所有環境變量都可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM