可以使用docker-compose在docker上的package.json中使用postinstall安装Bower依赖项。
package.json文件:
{
"name": "mongocrud",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./config/server.js",
"postinstall": "node ./node_modules/bower/bin/bower install",
"test": "mocha"
},
"dependencies": {
//dependicies
}
}
Dockerfile:
FROM node:7.7.2-alpine
WORKDIR /application
COPY package.json .
COPY bower.json .
COPY .bowerrc .
RUN npm install -g bower
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
docker-compose.yml:
version: '3'
services:
mongodb:
image: mongo:3.4.4
command: mongod
container_name: mongo-container
ports:
- 27017:27017
express:
build: .
container_name: express-container
ports:
- 3000:3000
working_dir: /application
links:
- mongodb
command: npm start
在使用docker-compose up应用程序后运行良好,但缺少Bower依赖项,我可以解决该问题吗?
压力
我在docker-compose之后在控制台中找到了这个:
npm WARN lifecycle mongocrud@0.0.0~postinstall: cannot run in wd %s %s (wd=%s) mongocrud@0.0.0 node ./node_modules/bower/bin/bower install /application
谢谢
最佳答案
在安装后脚本中将node ./node_modules/bower/bin/bower install
更改为bower install --allow-root
。 --allow-root
是为了防止出现权限错误。
或者,您可以删除后安装脚本,并在Dockerfile中的RUN bower install --allow-root
之后添加RUN npm install
。
而且Bower需要git才能工作,您必须首先在Dockerfile中安装git。
关于node.js - 在Docker上进行postinstall的Bower依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44962014/