我正在尝试在docker容器中安装本地npm软件包(使用yarn工作区),但似乎未在安装本地软件包。尽管它确实成功安装了全局软件包。
此外,当我猛扑到容器中并运行“ 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
我知道这不是一个合适的解决方案,所以有人可以帮我吗?