安装后如何设置Dockerfile以运行babel?

时间:2019-04-11 03:16:15

标签: node.js docker docker-compose

在运行docker-compose up时,尝试构建自己的nodejs代码时会不断遇到babel错误,因为它是使用ES6编写的,具有导入功能,而不是const。

  

babel server.js -d dist && babel src -d dist / src

     

babel:     server.js不存在

我的目录结构是:

  • server.js

  • src

    • 所有其他js文件

我应该如何设置Dockerfile,因为在创建容器时我显然不了解文件位置。

到目前为止,我已经尝试将构建位置移动到dist文件夹而不是构建,但这只是文件重命名。我还尝试将COPY .更改为COPY server.js,但同样失败。

Dockerfile

FROM node:latest
WORKDIR /usr/src/app/api
COPY package.json /usr/src/app/api
RUN npm install
COPY . /usr/src/api
RUN npm run build
EXPOSE 4000
CMD npm run start

package.json

  "scripts": {
    "build": "babel server.js -d dist && babel src -d dist/src",
    "dev-start": "babel-watch server.js",
    "start": "npm run build && node dist/server.js"
  }

我希望容器在构建完应用程序后完成创建,并且当前的实际结果是构建失败和容器故障。

1 个答案:

答案 0 :(得分:0)

似乎您在COPY命令中使用了错误的路径

您在WORKDIR /usr/src/app/api中的路径

COPY . /usr/src/api中的路径

将路径作为workdir这样的复制命令中的路径放入COPY . /usr/src/app/api