2017-07-07 26 views
0

可以使用docker-compose在docker上的package.json中的postinstall安裝bower dependicies嗎?Bower dependsicies與Docker上的postinstall

的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:

泊塢窗,compose.yml
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"] 

使用後
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 

和碼頭工人,組成了應用程序工作正常,但缺少我可以解決這個問題嗎?

P.S

這是我在控制檯後發現碼頭工人,組成了起來:

npm WARN lifecycle [email protected]~postinstall: cannot run in wd %s %s (wd=%s) [email protected] node ./node_modules/bower/bin/bower install /application 

感謝

回答

0

變化node ./node_modules/bower/bin/bower installbower install --allow-root在後腳本。 --allow-root是爲了防止您的權限錯誤。

或者您可以刪除後安裝腳本並在Dockerfile中的RUN npm install之後添加RUN bower install --allow-root

而鮑爾需要git工作,你必須首先在你的Dockerfile中安裝git。

+0

更改節點./node_modules/bower/bin/bower安裝到bower安裝--allow-root給我這個:bower bootstrap#^ 3.3.7 ENOGIT git未安裝或不在PATH中 – Marcin

+0

您必須安裝git首先,在你的dockerfile中添加apt-get update並安裝git –