程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

docker run -e 使用環境變量傳值(字符、數字、json)並用python解析

編輯: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,否則不生效!!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved