ln:无法创建符号链接“ /dev/shm/download/file.out”:在Docker容器内

时间:2020-02-25 03:36:27

标签: docker

我有以下docker文件。我正在尝试创建一个运行python测试服务器的docker映像。

FROM ubuntu:16.04

LABEL Author="My Name"
LABEL E-mail="myname@gmail.com"
LABEL version="1.0.0"

ENV FLASK_DEBUG True

RUN apt-get update -y && \
    apt-get install -y python-pip python-dev

# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt

RUN mkdir /data
RUN mkdir /dev/shm/download
ADD download/file.out /data/
VOLUME /data
RUN ln -sf /data/file.out /dev/shm/download/file.out

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

ENTRYPOINT [ "python" ]

CMD [ "test_server/app.py" ]

我有一个文件file.out,该文件需要放入docker容器中。我还想创建一个指向该文件的符号链接/dev/shm/download

运行dockerfile时出现以下错误。

ln: failed to create symbolic link '/dev/shm/download/file.out': No such file or directory
The command '/bin/sh -c ln -sf /data/file.out /dev/shm/download/file.out' returned a non-zero code: 1

1 个答案:

答案 0 :(得分:0)

/dev/shm是默认的VOLUME。因此,您无法按照Docker文档中所述将数据添加到该文件夹​​中。

从Dockerfile中更改卷:如果在声明了卷之后有任何构建步骤更改了卷中的数据,则这些更改将被丢弃。

您需要使用其他位置。除了/dev/shm以外的其他符号链接。如果不是这样,则可以在启动时创建符号链接。


来源: * https://docs.docker.com/engine/reference/builder/#notes-about-specifying-volumes * https://sondnm.github.io/blog/2018/09/08/i-just-learnt-about-/dev/shm/