0

我正在尝试在 docker 容器中的节点上运行这个 hello world 示例

https://medium.com/@adnanrahic/hello-world-app-with-node-js-and-express-c1eb7cfa8a30

这是我的码头文件:

#escape=`
FROM microsoft/nanoserver

ADD https://nodejs.org/dist/v8.11.1/node-v8.11.1-win-x64.zip C:\node-v8.11.1-win-x64.zip

RUN powershell -Command Expand-Archive C:\node-v8.11.1-win-x64.zip C:\; Rename-Item C:\node-v8.11.1-win-x64 node; `
SETX PATH C:\node;

SHELL ["powershell", "-Command"]

RUN mkdir hello-world; `
    cd c:\hello-world; `
    npm init -f; `
    (Get-Content C:\hello-world\package.json) | `
    ForEach-Object { $_ -replace 'index.js', 'app.js' } | `
    Set-Content C:\hello-world\package.json; `
    npm install express --save; `
    echo \""var express = require('express');\"" > app.js; `
    echo \""var app = express();\"" >> app.js; `
    echo \""app.get('/', function (req, res) {\"" >> app.js; `
    echo \""  res.send('Hello World!');\"" >> app.js; `
    echo \""});\"" >> app.js; `
    echo \""app.listen(3000, function () {\"" >> app.js; `
    echo \""  console.log('Example app listening on port 3000!');\"" >> app.js; `
    echo \""});\"" >> app.js; `
    del c:\node-v8.11.1-win-x64.zip

EXPOSE 3000

ENTRYPOINT node c:\hello-world\app.js

成功构建容器后:

docker build . -t nano-node-hw

并运行它,我收到以下错误:

PS C:\Users\user\Docker\Node> docker run -it -p 3000:3000 --name node-hello nano-node-hw
c:\hello-world\app.js:1
(function (exports, require, module, __filename, __dirname) { ??v
                                                              ^

SyntaxError: Invalid or unexpected token
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:616:28)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

我在本地运行节点的笔记本电脑(Windows 10)上执行了相同的步骤并且没有任何问题.. 什么给出了?

4

0 回答 0