错误泊坞窗集装箱
问题描述:
我试图建立一个具有多为基于Aurelia路上的JavaScript项目所需的工具的一个码头工人容器中运行奥里利亚CLI。我多克社区版版本17.03.1-CE-MAC5(16048)及以下Dockerfile:错误泊坞窗集装箱
FROM ubuntu:yakkety
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -q && apt-get install -qy \
apt-utils \
git \
chromium-browser \
xvfb \
nodejs \
npm
RUN ln -s /usr/bin/nodejs /usr/bin/node
RUN npm install -g aurelia-cli
WORKDIR /workdir
EXPOSE 9000
我运行命令docker build -t maldrake/aurelia:v1 .
打造的容器,然后
docker run --rm -it -P -v `pwd`:/workdir maldrake/aurelia:v1 /bin/bash
壳成码头集装箱。
此时,当我运行au
时,我希望看到Aurelia CLI工具在不带参数运行时的常用输出,可用命令列表及其功能。相反,我得到以下的输出:
[email protected]:/workdir# au
/usr/local/lib/node_modules/aurelia-cli/lib/resolve/index.js:1
(function (exports, require, module, __filename, __dirname) { let core = require('./lib/core');
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/usr/local/lib/node_modules/aurelia-cli/bin/aurelia-cli.js:3:17)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
[email protected]:/workdir#
的JavaScript错误本身是很容易理解,如果我在那个index.js文件去看看,这是真的,有没有'use strict'
顶部。我可以将其添加到个人文件,并得到奥里利亚CLI运行,远远不足以创造一个新的项目,但后来当我尝试使用其他CLI命令,像au test
,我遇到了与其他文件相同的错误,唐顶部没有use strict
。我应该如何以不同的方式配置我的环境,以便CLI在安装时正常工作?
节点和NPM版本如下:
[email protected]:/workdir# node -v
v4.2.6
[email protected]:/workdir# npm -v
3.5.2
我已经通过堆栈溢出搜查,更普遍的,与谷歌并没有发现同样的问题的说明。这可能意味着我失去了一些明显的面部表情。
答
我打开使用奥里利亚CLI版本0.27.0这个问题。这个问题在刚刚发布的0.28.0版本中得到修复。
(编辑)嗯,部分固定。如果没有类似的错误,我仍然无法执行构建命令。但是,看起来潜在的问题是与节点4.x不兼容。因此,修改构建从节点拉PPA(版本6.10.x)解决了全部问题:
FROM ubuntu:yakkety
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -q && apt-get install -qy \
apt-utils \
chromium-browser \
curl \
git \
xvfb
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -qy \
nodejs
RUN npm install -g aurelia-cli
WORKDIR /workdir
EXPOSE 9000
阅读泊坞窗的最佳实践...您可以在一个运行安装许多包 –
是啊,谢谢!可能很明显,我对使用Docker相对来说比较陌生......我相应地编辑了Dockerfile,并更新了上面的问题。它不会改变我看到的结果,但它确实可以优化构建容器。 –
为什么不在码头中心搜索现有的aurelia图像?为什么你需要一个容器中的铬浏览器? –