node.js - 安装后如何设置 Dockerfile 以运行 babel?
问题描述
运行docker-compose up
时,我在尝试构建我的 nodejs 代码时不断收到 babel 错误,因为它是用 ES6 编写的,带有导入而不是 const。
babel server.js -d dist && babel src -d dist/src
babel: server.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
推荐阅读
- macos - 链接器在链接时是否生成绝对虚拟地址
- c - 初学者的问题)如何永久更改变量的类型?
- c++ - GraphicsGL 外部参考错误
- python - 带有子进程模块的进程永远不会停止运行
- spring-boot - 如何在 thymeleaf Spring boot 中显示对象数组的内容
- python - 在 1 秒内或尽可能接近它的情况下找到最多 100 万个素数的程序?
- python - 如何创建具有特定值的新熊猫 df
- java - 使用 Content-Encoding 发布请求:GZIP、DEFLATE 可能吗?
- php - 带有 PRIVATE-static-method 回调的 set_error_handler
- python - 在xarray的重采样环境中计算直方图