Я пытаюсь создать относительно простую установку для разработки и тестирования пакетов npm.Проблема была в том, что после монтирования тома кода в контейнер он заменяет node_modules.
Я перепробовал много общих логических вещей, в основном направленных на то, чтобы переместить node_modules в другое место и затем ссылаться на него в файлах конфигурации.Это работает, но решение уродливо.Кроме того, не рекомендуется устанавливать веб-пакет глобально, но мое решение требует его.
Однако через некоторое время я нашел это решение, которое выглядит элегантно, именно то, что мне было нужно, но у него также есть одна проблема.Я не совсем понимаю, как это работает.
Это моя версия того, как все работает.
Docker изменяет порядок установки томов на основе путей к контейнерам
Docker монтирует sub dirобъем вначале
Docker монтирует родительский том dir, но из-за необъяснимого механизма он не перекрывает том sub dir ...
???
ПРИБЫЛЬ.node_modules dir на месте, и веб-пакет работает отлично.
Итак, я действительно хочу понять, как на самом деле происходит вся эта черная магия.Потому что без этого знания я чувствую, что упускаю что-то важное.
Итак, ребята, как это работает?Заранее спасибо.
services:
react-generic-form:
image: react-generic-form:package
container_name: react-generic-form-package
build:
dockerfile: dev.Dockerfile
context: ./package
volumes:
- "./package:/package"
- "/package/node_modules"