Многоступенчатая сборка не может быть скопирована с предыдущего этапа - файл не найден - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть файл Docker следующим образом:

FROM node:8 as builder
WORKDIR /usr/src/app
COPY ./src/register_form/package*.json .
RUN npm install
COPY ./src/register_form .
RUN  yarn build

FROM tensorflow/tensorflow:1.10.0-gpu-py3
COPY --from=builder /usr/src/app/register_form/build/index.html /app/src/
WORKDIR /app
ENTRYPOINT ["python3"]
CMD ["/app/src/main.pyc"]

Однако он не может скопировать index.html со стадии компоновщика.Хотя, когда я перечисляю папку на первом этапе, файлы там.

Ошибка:

Step 8/22 : COPY --from=builder ./register_form/build/ /app/src/

COPY failed: stat /var/lib/docker/overlay2/5470e05501898502b3aa437639f975ca3e4bfb5a1e897281e62e07ab89866304/merged/register_form/build: no such file or directory

Как я могу исправить эту проблему - команда docker COPY --from = builder?

1 Ответ

0 голосов
/ 27 декабря 2018

Я думаю, вы неправильно используете команду COPY.Как сказано в документации:

Если src является каталогом, копируется все содержимое каталога, включая метаданные файловой системы.

Примечание. Сам каталог не являетсяскопировано, только его содержимое.

Таким образом, ваша команда COPY ./src/register_form . НЕ создает папку register_form в контейнере, а вместо этого копирует все содержимое.Вы можете попробовать добавить:

RUN ls .

к вашему Dockerfile, чтобы убедиться.

Как заметил @BMitch в комментариях, вы можете явно установить имя папки назначения для достижения ожидаемых результатов:

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