use*_*844 11 python flask docker
作为python和docker的新手,我创建了一个小烧瓶应用程序(test.py),它有两个硬编码值:
username = "test"
password = "12345"
Run Code Online (Sandbox Code Playgroud)
我能够创建一个Docker镜像并从以下Dockerfile运行一个容器:
FROM python:3.6
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "/code/test.py"]`
Run Code Online (Sandbox Code Playgroud)
如何为用户名和密码创建ENV变量并在运行容器时传递动态值?
urb*_*ban 26
在您的python代码中,您可以读取env变量,如:
import os
username = os.environ['MY_USER']
password = os.environ['MY_PASS']
print("Running with user: %s" % username)
Run Code Online (Sandbox Code Playgroud)
然后,当您运行容器时,您可以设置以下变量:
docker run -e MY_USER=test -e MY_PASS=12345 ... <image-name> ...
Run Code Online (Sandbox Code Playgroud)
这将在容器中设置env变量,稍后将通过python脚本读取这些变量(test.py)
有关os.environ和docker env的更多信息
Ope*_*nja 11
在您的Python代码中,您可以执行以下操作:
# USERNAME = os.getenv('NAME_OF_ENV_VARIABLE','default_value_if_no_env_var_is_set')
USERNAME = os.getenv('USERNAME', 'test')
Run Code Online (Sandbox Code Playgroud)
然后,您可以创建一个docker-compose.yml文件以使用以下命令运行您的dockerfile:
version: '2'
services:
python-container:
image: python-image:latest
environment:
- USERNAME=test
- PASSWORD=12345
Run Code Online (Sandbox Code Playgroud)
您将使用以下命令运行撰写文件:
$ docker-compose up
Run Code Online (Sandbox Code Playgroud)
您需要记住的只是使用以下命令构建您在问题中提到的dockerfile:
$ docker build -t python-image .
Run Code Online (Sandbox Code Playgroud)
让我知道是否有帮助。我希望能回答您的问题。
| 归档时间: |
|
| 查看次数: |
15506 次 |
| 最近记录: |