Как я могу использовать тома Rush и Docker вместе?

Я пытаюсь использовать Rush для обработки монорепозитория. Я видел недавний аналогичный вопрос в разделе Как собрать докер (монорепозиторий спешки)?, но в нем нет ответов, и он больше касается вопросов сборки, чем вопросов разработки.

Rush использует символические ссылки, чтобы избежать копирования одних и тех же зависимостей между разными пакетами в одном и том же репозитории.

Я используюdocker-composeдля местного разработчика, как и для любого другого проекта. Конфиг такой:

      version: '3'
services:
  web:
    build: .
    image: 'my-image'
    command: "npm start"
    user: "node"
    working_dir: /home/node/app
    volumes:
      - ./:/home/node/app

Когда я делаюdocker-compose upон не может найти ни одну из моих зависимостей. Если я скопирую папку в случайное место, запуститеnpm install, и попробуй так же работает, потому что нет симлинков.

Я обсуждал создание тома в исходном местоположении../../common/temp/node_modules/но это может быть немного сумасшедшим, поскольку у него есть модули каждого узла для всех пакетов. Дело в том, что файлы находятся за пределами структуры папок моего пакета server/docker.

Есть ли какая-то опция докера или спешки, которую мне не хватает?

2 ответа

Это работает, но кажется неправильным. Надеюсь, у другого пользователя есть лучший ответ.

      volumes:
      - ./src/:/home/node/app/src
      - ../../common/temp/node_modules/:/home/node/app/node_modules

Я бы предположил, что у вас естьnode_modulesв вашем пути .dockerignore, поэтому он не включает вывод вашей установки с вашего хоста. Когда вы делаете объем, пустая папка затем отображается.

Другие вопросы по тегам