鲍尔依赖于Docker上的postinstall
docker-compose在docker上使用postinstall在package.json中安装bower dependicies是可能的吗?
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"]
泊坞窗,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 – 组成了应用程序工作正常,但遗漏的依赖政策,我可以解决这个问题吗?
PS
这是我在docker-up后在控制台中发现的:
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
是为了防止你的权限错误。
或者,您可以删除后安装脚本,并在RUN npm install
后在Dockerfile中添加RUN bower install --allow-root
。
而且bower需要git才能工作,所以你必须首先在你的Dockerfile中安装git。