【发布时间】:2017-09-04 07:13:02
【问题描述】:
我想接收版本号作为单个参数,并在 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 脚本?
【问题讨论】:
-
我不敢相信仍然没有优雅的解决方案来解决这个问题。
标签: shell docker dockerfile