Node.js docker内部但非外部的Nodejs语法错误
我有一个超级简单的node.js文件,它在docker之外运行得非常好,但是当我尝试在容器中运行它时,会抛出以下语法错误:Node.js docker内部但非外部的Nodejs语法错误,node.js,docker,Node.js,Docker,我有一个超级简单的node.js文件,它在docker之外运行得非常好,但是当我尝试在容器中运行它时,会抛出以下语法错误: /app/index.js:第1行:语法错误:意外单词(应为“)” index.js实际上是一行: console.log(“HI”); 我的Docker文件是: FROM node:14-alpine WORKDIR /usr/app/ COPY . ./ CMD yarn start 我在内外运行相同的命令,相同版本的node等。我在Windows 10上使用支持W
/app/index.js:第1行:语法错误:意外单词(应为“)”
index.js
实际上是一行:
console.log(“HI”);
我的Docker文件是:
FROM node:14-alpine
WORKDIR /usr/app/
COPY . ./
CMD yarn start
我在内外运行相同的命令,相同版本的node等。我在Windows 10上使用支持WSL2的docker桌面。这有什么关系吗?我快发疯了…试试这个
FROM node:14-alpine
WORKDIR /usr/app/
COPY . .
CMD [ "yarn", "start" ]
试试这个
FROM node:14-alpine
WORKDIR /usr/app/
COPY . .
CMD [ "yarn", "start" ]
这对我来说很好
index.js
console.log("HI");
Dockerfile
FROM node:14-alpine
WORKDIR /usr/app/
COPY . ./
CMD yarn start
package.json
{
"name": "my-package",
"scripts": {
"start": "node index.js"
}
}
docker-compose.yml
version: '3.7'
services:
node_v14_test:
build:
context: .
dockerfile: Dockerfile
然后使用docker compose构建并运行docker容器
docker-compose up --build
结果
这对我来说很好
index.js
console.log("HI");
Dockerfile
FROM node:14-alpine
WORKDIR /usr/app/
COPY . ./
CMD yarn start
package.json
{
"name": "my-package",
"scripts": {
"start": "node index.js"
}
}
docker-compose.yml
version: '3.7'
services:
node_v14_test:
build:
context: .
dockerfile: Dockerfile
然后使用docker compose构建并运行docker容器
docker-compose up --build
结果
似乎您需要将文件从dos转换为Linux版本,或者案例映像可能使用了错误的代码 但调试该问题的最简单方法不是使用Docker环境,而是在Dcokerfile中生成文件
FROM node:14-alpine
WORKDIR /usr/app/
COPY package.json .
RUN echo "console.log(\"HI\")" >> index.js
CMD yarn start
似乎您需要将文件从dos转换为Linux问题,或者案例图像可能使用了错误的代码 但调试该问题的最简单方法不是使用Docker环境,而是在Dcokerfile中生成文件
FROM node:14-alpine
WORKDIR /usr/app/
COPY package.json .
RUN echo "console.log(\"HI\")" >> index.js
CMD yarn start
看起来您不是在用nodejs解释文件,而是在用其他东西解释文件,可能是bash。。。确保你的package.json确实有
节点app/index.js
作为开始脚本,而不仅仅是app/index.js
这就是它的全部…*facepalm*。我想我很少只使用node从npm脚本运行东西。不知何故,我认为脚本:{start::::./server.js}
可以工作。谢谢看起来您不是在用nodejs解释文件,而是在用其他东西解释文件,可能是bash。。。确保你的package.json确实有节点app/index.js
作为开始脚本,而不仅仅是app/index.js
这就是它的全部…*facepalm*。我想我很少只使用node从npm脚本运行东西。不知何故,我认为脚本:{start::::./server.js}
可以工作。谢谢