我有以下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
答案 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/