Docker с установкой npm добавляет нежелательную символическую ссылку - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь собрать контейнер nodejs для моего проекта, для которого требуется локальный модуль. На моем package.json я получил относительную ссылку на папку выше, так как там, где находится локальный модуль. Кажется, все работает правильно, за исключением того, что внутри контейнера локальный модуль добавляется как символическая ссылка на хост-компьютер (windows).

Это происходит только при сборке с использованием файла dockerfile, если я выполняю npm-установку вручную внутри контейнера, модуль копируется в node_module, как и ожидалось.

package.json запись:

"app-lib": "file:../app_lib"

файл докера:

FROM node:8.9-alpine
ENV NODE_ENV production
WORKDIR /usr/src/app
COPY ["./Provider/package.json", "./Provider/package-lock.json*", "./Provider/npm-shrinkwrap.json*", "./"]
COPY ["./app_lib/package.json", "./app_lib/package-lock.json*", "./app_lib/npm-shrinkwrap.json*", "../app_lib/"]
RUN cd ../app_lib && npm install
COPY ./app_lib .
RUN cd ../app && npm install
COPY ./Provider .
EXPOSE 3001

Раздражающая символическая ссылка:

app-lib -> E:\work\app_server\app_lib\

Кто-нибудь получил какие-либо предложения о том, как заставить его работать правильно при сборке или почему это может быть основной причиной?

1 Ответ

0 голосов
/ 26 июня 2018

Убедитесь, что у вас есть node_modules в .dockerignore, иначе COPY ./app_lib . перезапишет то же самое, и вы получите поведение, которое видите

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