2017-04-04 1 views
1

Aureliaベースのjavascriptプロジェクトに必要なツールが多く含まれているDockerコンテナを作成しようとしています。私は、ドッカーコミュニティ版バージョン17.03.1-CE-MAC5(16048)と、以下のDockerfileを持っている:DockerコンテナでAurelia CLIを実行しているときにエラーが発生しました

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 run --rm -it -P -v `pwd`:/workdir maldrake/aurelia:v1 /bin/bash 

続く、コンテナを構築するためのコマンドdocker build -t maldrake/aurelia:v1 .を実行しますドッカーコンテナ。

その時点で、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'はありませんというのは本当です。私はそれを個々のファイルに追加することができ、Aurelia CLIを実行して新しいプロジェクトを作成できますが、au testのような他のCLIコマンドを使用しようとすると、他のファイルと同じエラーが発生します上部にuse strictがあります。インストール時にCLIだけが動作するように、私の環境をどうやって構成するべきですか?

[email protected]:/workdir# node -v 
v4.2.6 
[email protected]:/workdir# npm -v 
3.5.2 

私はグーグルで、および、より一般的には、スタックオーバーフローを経由して検索したと同じ問題の記述を発見していない次のように

ノードとNPMのバージョンがあります。それはまあまあ、私は何かfacepalmingly明らかに欠けていることを意味する可能性があります。

+0

ドッカベストプラクティスを読む...あなたはそうああ1つのRUN –

+0

に多くのパッケージをインストールすることができ、ありがとうございました!おそらく私はDockerを使うのが比較的新しいと思います...それに応じてDockerfileを編集し、上記の質問のポストを更新しました。それは私が見ている結果を変えることはありませんが、コンテナの構築を最適化します。 –

+0

既存のアウレリア画像のドッカーハブを検索してみませんか?コンテナ内にクロムブラウザ全体が必要なのはなぜですか? –

答えて

0

Aurelia 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 
関連する問題