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
用來輸出傳過來的環境變量,用來驗證環境變量是否生效;並執行python腳本
echo "task_id = ${task_id}"
echo "task_param = ${task_param}"
python /code/main.py
python腳本,用os.environ
讀取環境變量。
import os
task_id = os.environ['task_id']
task_param = os.environ['task_param']
構建鏡像: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,否則不生效!!