Docker 上安装后的 Bower 依赖项

Bower dependicies with postinstall on Docker

可以使用 docker 上的 package.json 中的 postinstall 和 docker-compose?

安装 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
      }
    }

Docker 文件:

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 依赖项,我可以修复它吗?

P.S

这是我在 docker-compose 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是为了防止你的权限错误。

或者您可以删除安装后脚本并在 Dockerfile 中的 RUN npm install 之后添加 RUN bower install --allow-root

Bower 需要 git 才能工作,您必须先在 Dockerfile 中安装 git。