-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) 

주어진 명령했다 : docker run -i loadimpact/k6:latest run -i 1 - <test.js 내 test.js 스크립트에서

가, import 문은 다음과 같습니다 :

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

+1

질문을 시작하고 1 초 만에 올바른 답을 얻을 수 있습니까? 배지를 수집하고 있습니까? –

+0

아니요 :) FAQ 질문과 답변을 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";

.. 그리고을 물론, library.js는에 있어야한다 docker 명령을 실행할 때 현재 작업 디렉토리.

그리고 내가 당신이라면 마지막으로, 나는 아마도 test.js의 배관을 건너 뛸 것 (당신은 K6을 실행할 때 -i 1를 추가 할 필요는 없습니다 1 반복은 기본입니다) 어쨌든 디렉토리를 마운트한다고 가정하면 stdin입니다. 다음과 같이 할 수 있습니다 : docker run -v $(pwd):/mnt loadimpact/k6:latest run /mnt/test.js

이것은 호스트 컴퓨터의 현재 작업 디렉토리가/mnt (Docker 컨테이너에서)에 마운트되는 Docker 컨테이너를 시작한 다음 k6에게 "test .js "는/mnt (호스트의 현재 WD)에 있으며 test.js는/mnt (호스트의 현재 WD)에도있는 .js 파일을 가져옵니다. 따라서 모든 파일은 작업 디렉토리에 있어야합니다.