Я пытаюсь установить свои локальные пакеты npm (используя рабочие области пряжи) в мой докер-контейнер, но кажется, что он не устанавливает локальные пакеты.Хотя он успешно устанавливает глобальные пакеты.
Кроме того, когда я захожу в контейнер и запускаю «lerna bootstrap», он успешно устанавливает мои локальные пакеты.Я искал во всем Интернете, почему это происходит.
Содержимое моего файла Docker выглядит как
FROM node:12.4.0-alpine
RUN apk add --no-cache bash
RUN apk add --no-cache yarn
WORKDIR "/app"
RUN yarn global add lerna
COPY . .
RUN yarn install
RUN lerna bootstrap
CMD ["npm", "run", "dev"]
Мой корневой файл package.json выглядит как
{
"name": "my-test",
"version": "1.0.0",
"description": "Test",
"main": "app.js",
"private": true,
"workspaces": [
"packages/**"
],
"scripts": {
"start": "node app.js",
"dev": "nodemon -L app.js"
},
"author": "Phantom",
"license": "ISC",
"dependencies": {
"config": "3.0.1",
"dotenv": "7.0.0",
"express": "4.16.4",
"node-locale": "2.0.0",
},
"devDependencies": {
"lerna": "^3.15.0",
"@lerna/bootstrap": "3.8.5",
"nodemon": "1.18.10",
}
}
Мой файл lerna.json выглядит следующим образом:
{
"version": "1.0.0",
"npmClient": "yarn",
"useWorkspaces": true,
"packages": ["packages/*"]
}
В качестве обходного пути я запускаю следующую команду docker после запуска контейнера.
docker exec -w /app <my-container-name> lerna bootstrap
Я знаю, что это невернорешение, так может кто-нибудь, пожалуйста, помогите мне?