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



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

Babel Server.js -d dist && Babel SRC -D dist/SRC

巴别塔: 服务器.js不存在

我的目录结构是:

  • 服务器.js

  • 来源

    • 所有其他 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"
  }

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

似乎你在COPY命令中有错误的路径

您在WORKDIR /usr/src/app/api之路

COPY . /usr/src/api路径

将路径作为路径放在workdir复制命令中

,如下所示COPY . /usr/src/app/api

最新更新