Kau*_*Kau 0 python syntax containers environment-variables docker
我正在尝试从 docker 容器运行一个简单的 hello world 程序。我想要做的是显示我传递给环境变量的自定义消息。如果没有传递给环境变量,那么程序应该只显示“Hello World!”的默认消息。我已经在我的 dockerfile 中创建了一个环境变量,我正在尝试使用 --env-file 标志在我的环境变量文件中覆盖该变量。但是,我不确定设置环境变量的正确语法是什么,因为我得到了“无效语法”。
以下是我的文件:
文件
FROM python:3
ADD main.py /
ENV MESSAGE "Hello World!"
CMD ["python3", "./main.py"]
Run Code Online (Sandbox Code Playgroud)
环境文件
MESSAGE="Goodbye World!"
Run Code Online (Sandbox Code Playgroud)
主文件
# simple hello world program
print($MESSAGE)
Run Code Online (Sandbox Code Playgroud)
这就是我构建和运行容器的方式
docker build -t example -f Dockerfile .
docker run --env-file=env_file --rm --name example example
Run Code Online (Sandbox Code Playgroud)
将您更改main.py为:
import os
print(os.environ['MESSAGE'])
Run Code Online (Sandbox Code Playgroud)
$不支持在 Python 中使用访问环境变量,并且这不是有效的 Python 语法。
请注意,如果没有这样的环境变量,这将引发异常,因此您可能希望在这种情况下使用os.environ.get('MESSAGE')并检查None或执行一些错误处理。