0
我想將版本號作爲單個參數接收,並在Dockerfile的RUN腳本中爲URL中的各個位置提取主要/次要編號。Dockerfile中的shell表達式的缺省值ARG和ENV
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腳本?
感謝您回答並參考文檔。我已經按照你的建議寫了一個封裝外殼腳本。 – Achimnol