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