在 docker alpine 中更改目录失败

Change directory in docker alpine failing

正在尝试使用 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

当前工作目录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

Robert 是对的,您可以通过遵循 Dockerfile 最佳实践来避免这个问题,并且只有一个 运行,请参阅 https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/