У меня есть проект рабочих областей пряжи, который выглядит примерно так:
node_modules
packages
shared
test.js
package.json
client
test.js
package.json
server
test.js
package.json
package.json
server.Dockerfile
Как видите, у меня есть server.Dockerfile
, который создает образ сервера, который я могу выдвинуть на другойхостинг-провайдеры, такие как Heroku или AWS.
Я копирую packages
и package.json
в этот контейнер:
COPY packages packages
COPY package.json .
И затем устанавливаю только зависимости для пакета server
:
RUN cd packages/server && yarn install
Все зависимости теперь находятся в папке node_modules
, и следующее, что я думаю сделать, это удалить папку packages
, чтобы удалить любой ненужный код из образа докера (например, клиента).код):
RUN rm -rf packages
Проблема в том, что все пакеты рабочего пространства пряжи в папке node_modules
являются просто символическими ссылками на папку packages
... поэтому я не могу удалить эту папку.
Как заставить yarn install
сделать копию пакетов рабочей области пряжи вместо создания символических ссылок?
Или есть другой способудалить весь неиспользуемый код (например, код клиента), чтобымое изображение в докере не раздуто?
РЕДАКТИРОВАТЬ: этот вопрос не о докере, поэтому я не уверен, стоит ли включать его в теги