Докер копирует контекстный каталог в мой рабочий каталог - PullRequest
0 голосов
/ 14 марта 2019

У меня очень простое изображение:

FROM node:11-alpine

WORKDIR /app

COPY src /app/src

RUN cd src \
    && npm i --no-cache \
    && npm run build

CMD cd src \
    && npm run start

Во время сборки все в порядке, например, простое ls -R / открывает следующее дерево:

/:
app/

/app:
src/

/app/src:
package.json ...

Но когда я пытаюсьчтобы запустить его, я нахожу следующую структуру:

/:
app/

/app/:
src/

/app/src/:
src/ ... more files from the context dir that I never COPYed

/app/src/src/:
package.json ...

Если я RUN ls -R / сразу после npm run build, я получаю «хорошее» дерево, даже выполняя ls -R / всего за один слой до CMD Я получаюто же самое «хорошее» дерево, но любой слой после CMD (включая саму CMD) дает мне «неправильное» дерево, например:

CMD ls -R / && cd src && npm run start

Показывает /app/src/src, как если бы он брал всесодержимое контекста dir и размещение его под WORKDIR/src (т.е. /app/src)

Почему Docker делает это?

Я работаю

Docker версия 18.09.3, сборка 774a1f4

docker-compose версия 1.23.2, сборка 1110ad0

1 Ответ

0 голосов
/ 14 марта 2019

Покопавшись в несколько более "чистой" обстановке дома, я обнаружил, что, как следует из комментария, виновником был застрявший том, он нарастал ./myapp:/app/src, хотя такого объема больше не было в томах раздел моего docker-compose.yaml файла и простой системный черновик yes | docker сделали свое дело.

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