docker run -e 使用环境变量传值(字符、数字、json)并用python解析
第一步,代码编写DockerfileDockerfile的后半部分(设置环境变量默认值,以及传到run.sh中)一个坑:ENTRYPOINT 后面不能用[]的形式 否则无法读取环境变量值。# 设置环境默认值ENV task_id=123ENV task_param=1# entrypoint是容器入口# 不能用下面[]这种形式,否则读取不到环境变量!!# ENTRYPOINT["/bin/bash
第一步,代码编写
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,否则不生效!!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)