栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker run -e 使用环境变量传值(字符、数字、json)并用python解析

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker run -e 使用环境变量传值(字符、数字、json)并用python解析

第一步,代码编写 Dockerfile

Dockerfile的后半部分(设置环境变量默认值,以及传到run.sh中)
一个坑:ENTRYPOINT 后面不能用[]的形式 否则无法读取环境变量值。

# 设置环境默认值
ENV task_id=123
ENV task_param=1

# entrypoint是容器入口 
# 不能用下面[]这种形式,否则读取不到环境变量!!
# ENTRYPOINT  ["/bin/bash", "/code/run.sh"]
ENTRYPOINT  /bin/bash /code/run.sh $task_id $task_param 
run.sh

用来输出传过来的环境变量,用来验证环境变量是否生效;并执行python脚本

echo "task_id = ${task_id}"
echo "task_param = ${task_param}"
python /code/main.py
main.py

python脚本,用os.environ读取环境变量。

import os

task_id = os.environ['task_id']
task_param = os.environ['task_param']
第二步,运行docker

构建镜像:docker build -t image_name:v1.211020 -f ./Dockerfile .
生成容器并运行:docker run -e task_id="ua084d" -e task_param={"tag": "BERT"} --name MO_CLS_ua084d 9c6ad6da --rm

这里踩的一个坑:
注意:docker run的-e参数要紧跟run,否则不生效!!
注意:docker run的-e参数要紧跟run,否则不生效!!
注意:docker run的-e参数要紧跟run,否则不生效!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号