curl
Docker 컨테이너 내에서 bash 스크립트를 사용하여 실행하고 싶습니다 .
이것은 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", "eason": "파싱 실패"}], "type": "mapper_parsing_exception", "eason": "파싱 실패", "caused_by": { "type": "not_x_content_exception", "이유": "압축기 감지는 일부 xcontent 바이트 또는 압축 된 xcontent 바이트에서만 호출 할 수 있습니다"}}
그러나 스크립트를 다음과 같이 변경하면
curl -X POST http://localhost:9200/tests/test -d "{\"id\":\"978-1-60741-503-9\",\"doi\":\"\"}"
그런 다음 오류없이 작동합니다.
그렇다면 왜 json 파일을 좋아하지 않습니까 ???
최신 정보:
의견에서 제안한대로 @
뒤에 추가 usr/
하면 다음 오류가 발생합니다.
경고 : 파일에서 데이터를 읽을 수 없습니다. 경고 : "usr / share / elasticsearch / data / test.json", 빈 경고 : POST가 생성됩니다. % Total % Received % Xferd Average Speed Time
Time Time Dload Upload Total Spent Left Speed 100 201100201100740------- :--:-:--:-:- 738 { "error": { "root_cause": [{ "type": "mapper_parsing_exception", "eason": "구문 분석에 실패했습니다. 문서가 비어 있습니다"}], "type": "mapper_parsing_exception", "eason": " 파싱하지 못했습니다. 문서가 비어 있습니다 "},"상태 ": 400}
파일 test.json
:
"{\"id\":\"123\",\"field\":\"456\"}"
-d @usr/share/elasticsearch/data/test.json
.@