在运行docker-compose up
时,尝试构建自己的nodejs代码时会不断遇到babel错误,因为它是使用ES6编写的,具有导入功能,而不是const。
babel server.js -d dist && babel src -d dist / src
babel: server.js不存在
我的目录结构是:
server.js
src
我应该如何设置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"
}
我希望容器在构建完应用程序后完成创建,并且当前的实际结果是构建失败和容器故障。
答案 0 :(得分:0)
似乎您在COPY
命令中使用了错误的路径
您在WORKDIR /usr/src/app/api
中的路径
COPY . /usr/src/api
中的路径
将路径作为workdir
这样的复制命令中的路径放入COPY . /usr/src/app/api