尝试使用alpine图像构建dockerfile并安装目录集。这是下面的脚本。它工作正常,直到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
答案 0 :(得分:3)
当前工作目录每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
答案 1 :(得分:1)
Robert是对的,您可以通过遵循Dockerfile最佳做法来避免此问题,并且只有一次RUN,请参阅https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/