docker-compose尝试运行sh脚本(npm / ng serve)但找不到目录

时间:2018-08-21 07:07:55

标签: docker npm docker-compose angular-cli

我在docker-compose上拥有这部分,它将复制angular-cli前端和scripts目录。

  www:
    build: ./www
    volumes:
      - ./www/frontend:/app
      - ./www/scripts:/scripts
    command: /scripts/init-dev.sh
    ports:
      - "4200:4200"
      - "49153:49153"

Dockerfile中的www将安装npm。

FROM node:10-alpine
RUN apk add --no-cache git make curl gcc g++ python2

RUN npm config set user 0
RUN npm config set unsafe-perm true

RUN npm install

和脚本:

#!/bin/bash
echo "Serving.."
cd /app && npm run-script start

我正在运行docker-compose down && docker-compose build && docker-compose up命令:

www_1       | standard_init_linux.go:190: exec user process caused "no such file or directory"

我认为错误来自command行。

2 个答案:

答案 0 :(得分:1)

遇到类似的问题,您可以尝试向此文件添加execute特权

chmod +x www/scripts/init-dev.sh

答案 1 :(得分:1)

您很有可能按错误的顺序进行操作。

我不是Node方面的专家,但是您需要package.json或任何用于npm安装的工具来完成这项工作。我猜它在/ app中。但是在构建时,/ app无处可见,因为Dockerfile中没有提到它。

尝试在脚本npm install中移动cd /app && npm install && npm run-script start