我正在使用k6 Docker镜像来运行负载测试。我在同一目录中有一个库文件和一个测试脚本文件。
但是当我尝试打开模块文件时,我收到此错误:
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";
答案 0 :(得分:1)
Docker容器无权访问主机上的工作目录。您需要将其安装在Docker容器中。试试这个:
docker run -i -v $(pwd):/mnt loadimpact/k6:latest run - <test.js
您还需要更改import语句,因此它说:
import {fn} from "/mnt/library.js";
..当然,当你运行docker命令时,library.js必须在你当前的工作目录中。
(注意执行k6时不需要添加-i 1
,默认为1次迭代)
最后,如果我是你,我可能也会跳过test.js到stdin的管道,因为你正在安装一个目录。你可以做:
docker run -v $(pwd):/mnt loadimpact/k6:latest run /mnt/test.js
这意味着您正在启动一个Docker容器,主机上的当前工作目录将挂载在/ mnt(在Docker容器中),然后告诉k6执行驻留在/ mnt中的“test.js” (这是您在主机上的当前WD)和test.js导入也位于/ mnt(主机上的当前WD)的.js文件。所以所有文件都应该在你的工作目录中。