Я хочу выполнить curl
используя скрипт bash внутри контейнера Docker.
Это мой скрипт-файл script.sh
который я добавил в контейнер:
curl -X POST http://localhost:9200/tests/test -d usr/share/elasticsearch/data/test.json
Содержимое файла json следующее (идея добавить \
исходит из этой темы):
"{\"id\":\"978-1-60741-503-9\",\"doi\":\"\"}"
Когда я вхожу в работающий Docker-контейнер и выполняю bash myscript.sh
, результат будет следующим:
{"error":{"root_cause":[{"type":"mapper_parsing_exception", "reason":"не удалось разобрать"}], "type":"mapper_parsing_exception", "reason":"не удалось проанализировать", "reason_by":{"type":"not_x_content_exception", "reason":"Обнаружение компрессора может быть вызвано только для некоторых байтов xcontent или сжатых байтов xcontent"}}
Однако, если я изменю скрипт на этот:
curl -X POST http://localhost:9200/tests/test -d "{\"id\":\"978-1-60741-503-9\",\"doi\":\"\"}"
тогда это работает без ошибок.
Итак, почему ему не нравится файл JSON ???
ОБНОВИТЬ:
Когда я добавляю @
позади usr/
как предлагается в комментариях, я получаю следующую ошибку:
Предупреждение: не удалось прочитать данные из файла. Предупреждение: «usr /share /asticsearch /data /test.json», это пустое предупреждение: POST. % Всего% Получено% Xferd Средняя скорость Время
Время Время Текущая загрузка Загрузка Всего израсходовано Левая скорость 100 201 100 201 0 0 740 0 -: -: - -: -: - -: -: - 738 {"error": {"root_cause ": [{" type ":" mapper_parsing_exception "," reason ":" не удалось проанализировать, документ пуст "}]," type ":" mapper_parsing_exception "," reason ":" не удалось проанализировать, документ пуст "} , "статус": 400}
Файл test.json
:
"{\"id\":\"123\",\"field\":\"456\"}"