更改docker高山失败的目录

试图build立一个高山形象的docker文件,并安装一组目录。 以下是脚本。 它工作正常,直到mkdir,但不会更改为/ opt下载git代码。

git代码只下载到/ src。 不确定乳清cd / opt命令不起作用。

FROM alpine ADD . /src WORKDIR /src RUN apk update RUN apk add git RUN mkdir /opt RUN cd /opt && git clone --recursive https://github.com/Azure/azure-iot-sdk-python.git RUN ls -al RUN cd azure-iot-sdk-python && ls -al build_all/linux 

当前工作目录将每个RUN重置为最后一个WORKDIR的值。

所以,正因为如此,这行RUN cd azure-iot-sdk-python && ls -al build_all/linux是从这里/src ,你的克隆回购是在opt

所以这两个将工作:

 RUN cd /opt/azure-iot-sdk-python && ls -al build_all/linux 

和:

 WORKDIR /opt RUN cd azure-iot-sdk-python && ls -al build_all/linux 

罗伯特是对的,你可以通过遵循Dockerfile的最佳做法来避免这个问题,并且只有一个RUN,请参阅https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/