2016-06-12 22 views
0

私はPhantomJS用のドッキング用の容器を持っています。それは動作しますが、私はphantomjsのための任意のparamsを置くことはできません。DockerコンテナでPhantomJSの追加パラメータを使用するにはどうすればよいですか?

docker run —rm fizzka/phantomjs-source-capture http://phantomjs.org 

それはそれは動作しません作業

docker run —rm fizzka/phantomjs-source-capture --proxy=185.72.225.18:3128 http://phantomjs.org 

です。どのようにしてコードを変更できますか?

Dockerfile:

FROM wernight/phantomjs 
COPY src/printSource.js/
ENTRYPOINT ["phantomjs", "printSource.js"] 

CMD ["--help"] 

と私のprintSource.js

var system = require('system'); 

var url = system.args[1]; 

if (!url || url == '--help') { 
    console.log("Usage: <docker-image-run> URL"); 
    phantom.exit(); 
} 

var page = require('webpage').create(); 
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36'; 

page.open(url, function (status) { 
    if (status !== 'success') { 
     console.log('Unable to load the address!'); 
     phantom.exit(); 
    } else { 
     window.setTimeout(function() { 
      // page.render(output); 
      console.log(page.content); 
      phantom.exit(); 
     }, 2000); 
    } 
}) 

答えて

1

あなたが実行しようとしているコマンドのように終わる:あなたが必要phantomjs cli refから、しかし

phantomjs printSource.js --proxy=185.72.225.18:3128 http://phantomjs.org 

あなたのオプション(例えば--proxyのような)をjsファイルの前に渡すようにしてくださいそれはあなたのjsスクリプトの代わりにphantomjsに渡されます。

+0

はい、ありがとうございますが、私はprintSource.jsをコンテナに入れたと思いますが、どう思いますか? –

+0

これはコンテナに含めることができますが、最初の引数としてそのエントリポイントを定義すると、その前に他の引数を追加する方法はありません。 js引数の適切な側でさまざまな引数を渡すために、シェルスクリプトを使ってエントリポイントを再設計する必要があります(たとえば、 '--help'などはまだ必要です)。またはエントリポイントから完全に削除して、cliにprintSource.jsを含めます。 – BMitch

関連する問題