首页 > 解决方案 > 如何动态定义 Dockerfile 中的参数并将其传递给下一步?

问题描述

我想:

step 1. 在 Docker 镜像中获取正在运行的 Python 版本

step 2. 找到 Python Env 的不同路径

步骤 3.全部导出

因为我知道 Python 路径之一在哪里,所以我目前在 Dockerfile 中的解决方案是:

ENV PYTHONPATH "${PYTHONPATH}:THE_PATH_TO/pyvenv/lib/python3.7/site-packages"

它正在工作,但不是动态的,也不漂亮。

我尝试了以下脚本。

RUN \
  # read the python version
  PYVER=$(python3 -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))'); \
  
  # possible path to python env
  for DEP_PY_PATH in $(find UNDER_A_FOLDER -mindepth 1 -maxdepth 1 -type d); do \

    if [ -d "${DEP_PY_PATH}/pyvenv/lib/python${PYVER}/site-packages" ]; then \
    PYTHONPATH=${PYTHONPATH}:${DEP_PY_PATH}/pyvenv/lib/python${PYVER}/site-packages; \
    fi; \

  done 

ENV PYTHONPATH "${PYTHONPATH}"

没有错误,也无法正常工作。

标签: pythonbashdockerdockerfile

解决方案


推荐阅读