-1

私はk6 Dockerイメージを使用して負荷テストを実行しています。ライブラリファイルとテストスクリプトファイルが同じディレクトリにあります。Docker経由でk6を実行しているときにローカルJSモジュールをインポートする

しかし、私はモジュールファイルを開こうとすると、私はこのエラーを取得:

time="2017-10-12T06:59:58Z" level=error msg="GoError: open /library.js: no such file or directory 
    at native 
    at -:55:95(51) 

コマンドが与えられました。私のtest.jsスクリプトでdocker run -i loadimpact/k6:latest run -i 1 - <test.js

、import文は次のようになります。

import {fn} from "./library.js";

+1

あなたは質問を開始し、1秒以内に正しい回答がありますか?あなたはバッジを集めていますか? –

+0

いいえ:) Stackoverflowによくある質問と回答を追加するのは珍しいことではありません。実際、質問をしたことがある人は、質問するときに自分の質問に答えることができるチェックボックスでさえ気づくでしょう。詳細については、このリンクを参照してください。https://meta.stackexchange.com/questions/133522/encyclopedia-stack-exchange-vs-commercial-products – Ragnar

答えて

1

ドッカーコンテナは、ホストマシン上の作業ディレクトリへのアクセス権がありません。 Dockerコンテナの中にマウントする必要があります。これを試してみてください:

docker run -i -v $(pwd):/mnt loadimpact/k6:latest run - <test.js

それが言うように、あなたは、また、import文を変更する必要があります:もちろん

import {fn} from "/mnt/library.js";

..and、library.jsがでなければなりませんdockerコマンドを実行するときの現在の作業ディレクトリ。

(1回の反復がデフォルトである、あなたはK6を実行するときに-i 1を追加する必要はないことに注意してください)

そして、私があなただったら、最終的に、私はおそらくもtest.jsの配管をスキップしたいですとにかくディレクトリをマウントしようとしているので、stdin。あなたは行うことができます。 docker run -v $(pwd):/mnt loadimpact/k6:latest run /mnt/test.js

をこれは、あなたは、あなたが「テストを実行するためにK6を伝え、ホストマシン上の現在の作業ディレクトリが(ドッカーコンテナ内)/ mntにマウントされますドッカーコンテナを開始していることを意味し/ mnt(ホスト上の現在のWD)にある.jsファイルと、test.jsは/ mnt(ホスト上の現在のWD)にある.jsファイルもインポートします。したがって、すべてのファイルは作業ディレクトリになければなりません。

関連する問題