2015-12-21 6 views
2

Я хочу импортировать данные в базу данных mongodb с помощью docker-compose, но я не нашел решения. Это идея, что я где-то, но это не работает. Если кто-то увидеть лучшее решение или просто исправить это решение, я беру :). СпасибоИмпорт данных на mongodb из docker-compose

./docker-compose.yml

db: 
    image: mongo 
    ports: 
    - 27018:27017 

dbseed: 
    build: ./dbseed 
    links: 
    - db 

app: 
    build: . 
    links: 
    - db:db 
    ports: 
    -8080:8080 
    -8181:8181 

dbseed/new_climat_final.json

[ 
    { 
    "name": "Joe Smith", 
    "email": "[email protected]", 
    "age": 40, 
    "admin": false 
    }, 
    { 
    "name": "Jen Ford", 
    "email": "[email protected]", 
    "age": 45, 
    "admin": true 
    } 
] 

dbseed/Dockerfile

FROM mongo 

COPY new_climat_final.json /new_climat_final.json 

CMD mongoimport --host db --db hpApiDev --collection coll --type json --file /new_climat_final.json --jsonArray 

нет ошибок, но нет данных в моей базе данных MongoDB:/

Cf: Докер-Compose журналы

Attaching to dockernode_db_1, dockernode_dbseed_1 
db_1  | 2015-12-22T00:57:46.629+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=d48c97fd7ca5 
dbseed_1 | 2015-12-21T17:42:46.609+0000 Failed: open /new_climat_final.json: no such file or directory 
db_1  | 2015-12-22T00:57:46.629+0000 I CONTROL [initandlisten] db version v3.2.0 
dbseed_1 | 2015-12-21T17:42:46.609+0000 imported 0 documents 
db_1  | 2015-12-22T00:57:46.629+0000 I CONTROL [initandlisten] git version: 45d947729a0315accb6d4f15a6b06be6d9c19fe7 
db_1  | 2015-12-22T00:57:46.629+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013 
db_1  | 2015-12-22T00:57:46.629+0000 I CONTROL [initandlisten] allocator: tcmalloc 
db_1  | 2015-12-22T00:57:46.629+0000 I CONTROL [initandlisten] modules: none 
db_1  | 2015-12-22T00:57:46.629+0000 I CONTROL [initandlisten] build environment: 
db_1  | 2015-12-22T00:57:46.630+0000 I CONTROL [initandlisten]  distmod: debian71 
db_1  | 2015-12-22T00:57:46.630+0000 I CONTROL [initandlisten]  distarch: x86_64 
db_1  | 2015-12-22T00:57:46.630+0000 I CONTROL [initandlisten]  target_arch: x86_64 
db_1  | 2015-12-22T00:57:46.630+0000 I CONTROL [initandlisten] options: {} 
db_1  | 2015-12-22T00:57:46.642+0000 I -  [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 
db_1  | 2015-12-22T00:57:46.643+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 
db_1  | 2015-12-22T00:57:47.829+0000 I CONTROL [initandlisten] 
db_1  | 2015-12-22T00:57:47.830+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 
db_1  | 2015-12-22T00:57:47.830+0000 I CONTROL [initandlisten] **  We suggest setting it to 'never' 
db_1  | 2015-12-22T00:57:47.830+0000 I CONTROL [initandlisten] 
db_1  | 2015-12-22T00:57:47.830+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 
db_1  | 2015-12-22T00:57:47.830+0000 I CONTROL [initandlisten] **  We suggest setting it to 'never' 
db_1  | 2015-12-22T00:57:47.830+0000 I CONTROL [initandlisten] 
db_1  | 2015-12-22T00:57:47.833+0000 I FTDC  [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data' 
db_1  | 2015-12-22T00:57:47.833+0000 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker 
db_1  | 2015-12-22T00:57:47.835+0000 I NETWORK [initandlisten] waiting for connections on port 27017 
+1

Есть ли в 'Докер-Compose logs'? Возможно, вам нужно будет подождать в команде dbseed, чтобы убедиться, что mongo готов принимать соединения, прежде чем пытаться запустить импорт. – dnephin

+0

CMD mongoimport --host db --db hpApiDev --collection coll --type json --file /new_climat_final.json --jsonArray && sleep 5? чтобы позволить ждать во время вставки? я думаю, что это не подождать 5 секунд до того, как закончить. для журналов, посмотрите мое редактирование в исходном сообщении :). Спасибо –

+0

ОК я не видел раньше, но он не может найти мой файл, если я понимаю? но почему он не может найти файл? что случилось со мной conf –

ответ

0

Редактировать полный путь: build: /path/to/dbseed

Я не знаю, почему он не мог найти /new_climat_final.json файл. Ошибка:

dbseed_1 | 2015-12-21T17:42:46.609+0000 Failed: open /new_climat_final.json: no such file or directory

Но вы можете указать порт при запуске

CMD: CMD mongoimport --host db --port 27018 --db hpApiDev --collection coll --type json --file /new_climat_final.json --jsonArray

+0

это хорошо, потому что это было не '--port 27018', а' --port 27017', действительно, я хочу добраться до порта 27017 :), и если кто-то знает, как я могу восстановить без всех удаляется каждый раз, я хочу это :). Я пробовал это: 'docker-compose kill; docker-compose rm -f; docker-compose build; 'но не работает. спасибо, за два часа до того, чтобы понять, что это была просто сборка, которая не изменилась ... –

+0

ведь база данных создана, но нет коллекции внутри? в журналах регистрации докеров я вижу импортированные 180000 документов, но моя коллекция пуста почему? и импорт кажется мгновенным, так что это странно, потому что есть много данных. Извините, я думал, что моя проблема –

Смежные вопросы