gpt4 book ai didi

bash - 加载.env的Dockerfile入口点bash文件在容器中不可见

转载 作者:行者123 更新时间:2023-12-02 21:19:56 33 4
gpt4 key购买 nike

我正在尝试为我的应用程序开发一个Dockerfile,该文件在初始化后加载大量环境变量。不知何故,当我稍后执行以下命令时,这些变量是不可用的:

docker exec -it container_name bash
printenv

我的环境变量不可见。但是,如果我手动加载文件,它们是:
docker exec -it container_name bash
source .env
printenv
... environment variables are shown ...

这是我的dockerfile:

Dockerfile
FROM python:3.6
WORKDIR /usr/src/app

COPY requirements.txt /usr/src/app/requirements.txt

RUN pip install -r requirements.txt

COPY . /usr/src/app/
RUN chmod 755 load_env_variables.sh

ENTRYPOINT ["/bin/bash", "-c", "/usr/src/app/load_env_variables.sh"]

load_env_variables.sh
#!/bin/bash

source .env
python start_application

我的.env文件包含以下行als:“导出名称=值”。

最佳答案

出现这种情况的原因是docker exec -it container_name bash启动了新的bash。新的bash仅包含标准环境变量以及.bashrc.bash_profile文件中指定的变量。
解决您的问题的合适方法是将--env-file选项与docker run命令一起使用。请注意,env文件需要如下所示:

test1=test1
test2=test2

关于bash - 加载.env的Dockerfile入口点bash文件在容器中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46935020/

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