BigChainDB в Docker сразу вылетает с отказом в подключении?

Я использую Win10 x64, следуя инструкциям на странице https://docs.bigchaindb.com/projects/server/en/latest/appendices/run-with-docker.html

Поскольку я работаю в Windows (а у меня нет $HOME), вот настоящие команды, которые я выполняю:

docker run --rm -v "C:/bigchaindb_docker:/data" -ti bigchaindb/bigchaindb -y configure rethinkdb
docker run -v "C:/bigchaindb_docker:/data" -d --name bigchaindb -p "58080:8080" -p "59984:9984" bigchaindb/bigchaindb start

Кажется, что первая команда выполняется нормально. Я вижу .bigchaindb файл в своей C:/bigchaindb_docker папке. Вторая команда запустит контейнер, но примерно через 6 секунд контейнер выйдет с кодом 1. Я запустил docker start <container> && docker attach <container> и смог получить этот дамп:

INFO:bigchaindb.commands.bigchain:BigchainDB Version 0.10.0.dev
INFO:bigchaindb.config_utils:Configuration loaded from `/data/.bigchaindb`
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/rethinkdb/net.py", line 271, in __init__
    self._socket = socket.create_connection((self.host, self.port), timeout)
  File "/usr/lib/python3.5/socket.py", line 711, in create_connection
    raise err
  File "/usr/lib/python3.5/socket.py", line 702, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/bigchaindb", line 11, in <module>
    load_entry_point('BigchainDB', 'console_scripts', 'bigchaindb')()
  File "/usr/src/app/bigchaindb/commands/bigchain.py", line 401, in main
    utils.start(create_parser(), sys.argv[1:], globals())
  File "/usr/src/app/bigchaindb/commands/utils.py", line 96, in start
    return func(args)
  File "/usr/src/app/bigchaindb/commands/bigchain.py", line 201, in run_start
    _run_init()
  File "/usr/src/app/bigchaindb/commands/bigchain.py", line 142, in _run_init
    schema.init_database(connection=b.connection)
  File "/usr/src/app/bigchaindb/backend/schema.py", line 99, in init_database
    create_database(connection, dbname)
  File "/usr/lib/python3.5/functools.py", line 743, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "/usr/src/app/bigchaindb/backend/rethinkdb/schema.py", line 17, in create_database
    if connection.run(r.db_list().contains(dbname)):
  File "/usr/src/app/bigchaindb/backend/rethinkdb/connection.py", line 49, in run
    self._connect()
  File "/usr/src/app/bigchaindb/backend/rethinkdb/connection.py", line 73, in _connect
    self.conn = r.connect(host=self.host, port=self.port, db=self.dbname)
  File "/usr/local/lib/python3.5/dist-packages/rethinkdb/net.py", line 661, in connect
    return conn.reconnect(timeout=timeout)
  File "/usr/local/lib/python3.5/dist-packages/rethinkdb/net.py", line 572, in reconnect
    return self._instance.connect(timeout)
  File "/usr/local/lib/python3.5/dist-packages/rethinkdb/net.py", line 430, in connect
    self._socket = SocketWrapper(self, timeout)
  File "/usr/local/lib/python3.5/dist-packages/rethinkdb/net.py", line 337, in __init__
    (self.host, self.port, str(ex)))
rethinkdb.errors.ReqlDriverError: Could not connect to localhost:28015. Error: [Errno 111] Connection refused

Я собираюсь использовать BigChainDB и мало что знаю об этом. Я предполагаю, что он пытается подключиться к rethinkdb, но не работает. Не знаю, где это исправить, я тоже никогда не использовал rethinkdb. Кто-нибудь раньше сталкивался с этой проблемой?


person Corey Ogburn    schedule 01.03.2017    source источник
comment
Вы изменили IP, чтобы указать на docker conainer? Документы говорят, что это 172.17.0.1 в Linux. Какой соответствующий IP-адрес в Windows? РЕДАКТИРОВАТЬ: Плохо, я предполагал, что вы используете основную ветку. Для начала я бы посоветовал вам использовать явные теги при указании контейнеров, поскольку это помогает нам лучше отлаживать. :)   -  person krish7919    schedule 06.04.2017


Ответы (1)


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

INFO:bigchaindb.commands.bigchain:BigchainDB Version 0.10.0.dev

Раньше считалось, что последний тег образа BigchainDB (docker) указывал на последнюю главную ветку. Это было недавно изменено, так что теперь он указывает на последний выпуск, соответствующий тому, что находится в индексе пакетов Python (PyPI).

Поэтому, если вы снова загрузите образ, он должен обновиться до последней версии, которая на момент написания - 0.9.5. То есть:

docker pull bigchaindb/bigchaindb

или эквивалентно:

docker pull bigchaindb/bigchaindb:latest

или явно вытягивая тег 0.9.5:

docker pull bigchaindb/bigchaindb:0.9.5

Если вы используете версию 0.9.5 и попробуете две опубликованные вами команды, она должна работать.

Если вы хотите использовать последнюю главную ветку, вам нужно будет запустить RethinkDB, поскольку она больше не встроена в образ Docker. Подробные инструкции можно найти в основной версии документации BigchainDB в разделе Запустить внутреннюю базу данных.

person sylvain    schedule 06.04.2017