首页 > 解决方案 > 安装后如何设置 Dockerfile 以运行 babel?

问题描述

运行docker-compose up时,我在尝试构建我的 nodejs 代码时不断收到 babel 错误,因为它是用 ES6 编写的,带有导入而不是 const。

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

babel: server.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

包.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"
  }

我希望容器在构建应用程序的情况下完成创建,而当前的实际结果是构建失败和容器失败。

标签: node.jsdockerdocker-compose

解决方案


看来您的COPY命令路径错误

你的进路WORKDIR /usr/src/app/api

路径COPY . /usr/src/api

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


推荐阅读