在泊坞窗卷中找不到文件

时间:2016-04-18 07:41:05

标签: linux node.js docker makefile docker-compose

我正在使用docker compose来创建和运行多个服务。其中一个服务是nodeJS项目,我在其中添加了一个Makefile来运行一些自定义构建任务。

这就是我在docker-compose.yml文件

中定义服务的方式
web:
      container_name: web
      image: myApp/web
      build:
        context: .
        dockerfile: operations/.docker/web/${APP_ENV}.dockerfile
      ports:
        - "8080"
      volumes:
        - ./src/js/web:/var/www/myApp/
      working_dir: /var/www/myApp
      env_file:
        - operations/env/web/${APP_ENV}.env
      networks:
        - myApp_network

正如您所看到的,我的本地文件系统有一个带别名的卷。 Makefile位于./src/js/web目录下。

这是dockerfile

FROM node:latest
WORKDIR /var/www/myApp
RUN npm i
RUN make -f /var/www/myApp/Makefile build
RUN mkdir -p /var/log/pm2
EXPOSE 8080
ENTRYPOINT ["pm2", "start", "dist/server/bin/www.js","--name","web","--log","/var/log/pm2/pm2.log","--watch","--no-daemon"]

我的mac书上有相同的设置,我设法构建并运行服务。

但是,我最近尝试在linux mint上运行docker compose,我收到以下错误。

make: /var/www/myApp/Makefile: No such file or directory
make: *** No rule to make target '/var/www/myApp/Makefile'.  Stop.
ERROR: Service 'web' failed to build: The command '/bin/sh -c make -f /var/www/myApp/Makefile build' returned a non-zero code: 2

我还尝试通过删除RUN make -f /var/www/myApp/Makefile build来尝试构建图像,但它运行正常。当我进入容器时,我可以看到Makefile位于/var/www/myApp

0 个答案:

没有答案