Создайте контейнер mon go и импортируйте данные - PullRequest
3 голосов
/ 20 марта 2020

Я хочу построить контейнер Mon go и вставить некоторые данные, хранящиеся в папке / mongo_mock_data в этом контейнере. Вот мои строки кода:

MONGO_ID=$(docker run --publish-all -d --mount type=bind,source=${PWD}/mongo_mock_data,target=/tmp/mongo_mock_data mongo)
MONGO_PORT=$( docker inspect $MONGO_ID |  jq -r '.[0].NetworkSettings.Ports."27017/tcp"[0].HostPort' )
MONGODB_URL=mongodb://localhost:${MONGO_PORT}
docker exec $MONGO_ID mongoimport --host $MONGODB_URL --db algo --collection train --type json --file /tmp/mongo_mock_data/train_data.json --jsonArray
docker exec $MONGO_ID mongoimport --host $MONGODB_URL --db algo --collection calculation --type json --file /tmp/mongo_mock_data/predict_data.json --jsonArray
docker exec $MONGO_ID mongoimport --host $MONGODB_URL --db algo --collection train --type json --file /tmp/mongo_mock_data/cluster_data.json --jsonArray

У меня следующая ошибка:

параметры синтаксического анализа ошибки командной строки: ошибка синтаксического анализа URI из mongodb: /// localhost: 32773 / ? replicaSet = mongodb :: ошибка анализа uri: должен быть хотя бы 1 хост

есть идеи, что я делаю неправильно?

РЕДАКТИРОВАТЬ:

Если я попытаюсь:

MONGODB_URL=localhost:${MONGO_PORT}
docker exec $MONGO_ID mongoimport --host $MONGODB_URL --db pulse_algo --collection train --type json --file /tmp/mongo_mock_data/train_data.json --jsonArray

вместо

MONGODB_URL=mongodb://localhost:${MONGO_PORT}
docker exec $MONGO_ID mongoimport --host $MONGODB_URL --db algo --collection train --type json --file /tmp/mongo_mock_data/train_data.json --jsonArray

У меня следующая ошибка:

ошибка подключения к хосту: не удалось подключиться к серверу: ошибка выбора сервера: время ожидания выбора сервера

Ответы [ 2 ]

2 голосов
/ 20 марта 2020

Третий sla sh in mongodb:/// - ошибка транскрипции? Если нет, то происходит то, что MongoDB пытается подключиться к серверу на '' (ie, ничего ) к базе данных с именем localhost:32773, а не к серверу на localhost:32773 & база данных по умолчанию.

0 голосов
/ 20 марта 2020

Итак, наконец, я решил свою проблему, отбросив аргумент --host:

MONGO_ID=$(docker run --publish-all -d --mount type=bind,source=${PWD}/mongo_mock_data,target=/tmp/mongo_mock_data mongo)
MONGO_PORT=$( docker inspect $MONGO_ID |  jq -r '.[0].NetworkSettings.Ports."27017/tcp"[0].HostPort' )
docker exec $MONGO_ID mongoimport --db algo --collection train --type json --file /tmp/mongo_mock_data/train_data.json --jsonArray
docker exec $MONGO_ID mongoimport --db algo --collection calculation --type json --file /tmp/mongo_mock_data/predict_data.json --jsonArray
docker exec $MONGO_ID mongoimport --db algo --collection train --type json --file /tmp/mongo_mock_data/cluster_data.json --jsonArray
...