我希望您能将版本号作为单个参数,并在Dockerfile中的RUN脚本中提取URL的主要/次要数字。
ARG CUDA_VERSION
ARG CUDNN_VERSION
ENV CUDA_FULL="${CUDA_VERSION:-8.0.61_375.26}" \
CUDA_MAJOR="$(echo ${CUDA_VERSION:-8.0.61_375.26} | cut -d. -f1)" \
CUDA_MINOR="$(echo ${CUDA_VERSION:-8.0.61_375.26} | cut -d. -f2)" \
CUDA_MAJMIN="$CUDA_MAJOR.$CUDA_MINOR"
ENV CUDNN_FULL="${CUDNN_VERSION:-7.0.1}" \
CUDNN_MAJOR="$(echo ${CUDNN_VERSION:-7.0.1} | cut -d. -f1)" \
CUDNN_MINOR="$(echo ${CUDNN_VERSION:-7.0.1} | cut -d. -f2)" \
CUDNN_MAJMIN="$CUDNN_MAJOR.$CUDNN_MINOR"
RUN curl -LO https://.../${CUDNN_FULL}/.../...${CUDA_MAJMIN}...
如果我尝试上述方法,那么shell表达式将不会被评估,只是作为后续的RUN脚本原样粘贴。是否有更好的方法来实现这一点,而不需要创建一个包装此Dockerfile的外部shell脚本?