ln: не удалось создать символьную c ссылку '/dev/shm/download/file.out': внутри docker контейнера - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть следующий docker файл. Я пытаюсь создать образ docker, который запускает тестовый сервер python.

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, которому нужно go внутри контейнера 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 голосов
/ 25 февраля 2020

/dev/shm - это ОБЪЕМ по умолчанию. Поэтому вы не можете добавлять данные во время к этой папке, как указано в документации docker.

Изменение тома из Dockerfile: если какие-либо шаги сборки изменяют данные внутри тома после того, как он был заявлено, эти изменения будут отменены.

Вам нужно использовать другое местоположение. Что-то кроме /dev/shm для вашей символической ссылки. Если это не вариант, вы можете создать символическую ссылку во время запуска.


Источник: * https://docs.docker.com/engine/reference/builder/#notes -about-Specifying-volume * https://sondnm.github.io/blog/2018/09/08/i-just-learnt-about-/dev/shm/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...