为什么 soft link 没有保存在 docker 容器中

why soft link is not saved in docker container

我从 python3 创建了一个 python link,但是当我登录到容器镜像时它没有被保存。为什么?

FROM    ubuntu:latest
RUN     apt-get update
RUN     apt-get install -y libxml2-dev xmlsec1
RUN     apt-get install -y python3-pip python3-dev
RUN     cd /usr/local/bin
RUN     ln -s /usr/bin/python3 python
RUN     pip3 --no-cache-dir install --upgrade pip
RUN     rm -rf /var/lib/apt/lists/*
COPY    .  /app
WORKDIR /app
RUN     pip install -r requirements.txt
CMD     python3 app.py

命令 RUN 每次都会启动一个新的 shell。结果,工作目录在 dockerfile 步骤之间没有保留,所以

RUN     cd /usr/local/bin

不会影响后面的ln命令。您可以一步合并这两个命令:

RUN     cd /usr/local/bin && ln -s /usr/bin/python3 python

或者,使用 WORKDIR 或提供 ln 的完整 link 路径。