Ошибка спецификатора модулей при выполнении сценария K6 в docker

#influxdb #k6

Вопрос:

У меня ограниченные знания о докере. Но это то, что я сделал. Я установил рабочий стол docker. Вытащил изображения для influxdb 1.8 и grafana и loadimpact/k6. Создал контейнеры для influxdb и grafana, которые работают нормально.

http://localhost:3000/ -> работа http://localhost:8086/ ->> выдает 404 страница не найдена

Я хочу запустить свой скрипт k6 в docker, сохранить результат в базе данных influxdb, а затем использовать grafana для создания пользовательских панелей мониторинга на основе данных в базе данных influxdb.

Когда я даю следующую команду из командной строки из папки, в которой присутствует скрипт K6:

 docker run -v /k6 -i loadimpact/k6 run --out influxdb=http://localhost:8086/myk6db - <K6-script.js
 

Я получаю следующую ошибку.

 time="2021-10-16T10:09:58Z" level=error msg="The moduleSpecifier "./libs/shim/core.js" couldn't be found on local disk. Make sure that you've specified the right path to the file. If you're running k6 using the Docker image make sure you have mounted the local directory (-v /local/path/:/inside/docker/path) containing your script and modules so that they're accessible by k6 from inside of the container, see https://k6.io/docs/using-k6/modules#using-local-modules-with-docker.ntat reflect.methodValueCall (native)ntat file:///-:205:34(24)n" hint="script exception"
 

Папка, которая K6-script.js присутствует, присутствуют еще две папки K6 и библиотеки, которые импортированы в K6-script.js .

Затем я сослался [https://k6.io/docs/using-k6/modules/#local-filesystem-modules][1] и дал следующую команду

 docker run -v //c/loadtesting:/src -i loadimpact/k6 run --out influxdb=http://localhost:8086/myk6db K6-script.js
 

что приводит меня к следующей ошибке.

 level=error msg="The moduleSpecifier "K6-script.js" couldn't be found on local disk. Make sure that you've specified the right path to the file. If you're running k6 using the Docker image make sure you have mounted the local directory (-v /local/path/:/inside/docker/path) containing your script and modules so that they're accessible by k6 from inside of the container, see https://k6.io/docs/using-k6/modules#using-local-modules-with-docker. Additionally it was tried to be loaded as remote module by prepending "https://" to it, which also didn't work. Remote resolution error: "Get "https://K6-script.js": dial tcp: lookup K6-script.js on 192.168.65.5:53: no such host""
 

Как устранить эту ошибку и запустить сценарий K6 в окне настройки с помощью базы данных influxdb?

Ответ №1:

после многих проб и ошибок , когда я дал следующую команду, тест был запущен. Он не смог подключиться к базе данных InfluxDB, но это еще одна проблема, которую мне нужно решить . Но в остальном тест прошел.

 docker run -v //c/loadtesting:/src -i loadimpact/k6 run --out influxdb=http://localhost:8086/myk6db /src/K6-script.js
 

Я думаю, что для запуска сценария нужен путь сценария, который находится внутри контейнера.