Getting error while installing via docker
Hello all, I am beginner so please bear with me. I am trying to install h server using the docker and this installation guide: https://h.readthedocs.io/en/v0.4.0/INSTALL.html
These are the commands I ran to run docker containers:
docker run --name postgresql-container -p 5432:5432 -e POSTGRES_PASSWORD=Shree786 -d postgres
docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch nickstenning/elasticsearch-icu
docker run -d --name nsqd -p 4150:4150 -p 4151:4151 nsqio/nsq /nsqd
docker run -d -p 6379:6379 --name redis redis
docker run -d --name mail -p 25:25 -e MAIL_PORT_25_TCP=tcp://172.17.0.11:25 svendowideit/ambassador
docker run -d --env APP_URL=http://127.0.0.1:8000 --env SECRET_KEY=GNGsZlxst8sa++tBSDYzTpwdpD1QEIBjAfHubAY/9r26aZjtudgmxl81NOPTst0gBn7hjyAqyZE7q7meNfpijA --env ELASTICSEARCH_INDEX=hypothesis --env ELASTICSEARCH_URL=172.17.0.7:9200 --env MAIL_PORT=25 --env MAIL_DEFAULT_SENDER=127.0.0.1:25 -p 8000:8000 -p 5000:5000 \
-e DATABASE_URL=postgresql://postgres:[email protected]/postgres \
--link elasticsearch:elasticsearch \
--link nsqd:nsqd \
--link redis:redis \
hypothesis/hypothesis
It runs the container but in the logs I see this:
websocket (stderr) | During handling of the above exception, another exception occurred:
websocket (stderr) |
websocket (stderr) | Traceback (most recent call last):
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/kombu/utils/functional.py", line 344, in retry_over_time
websocket (stderr) | return fun(*args, **kwargs)
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/kombu/connection.py", line 874, in _connection_factory
websocket (stderr) | self._connection = self._establish_connection()
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/kombu/connection.py", line 809, in _establish_connection
websocket (stderr) | conn = self.transport.establish_connection()
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
websocket (stderr) | conn.connect()
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/amqp/connection.py", line 314, in connect
websocket (stderr) | self.transport.connect()
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/amqp/transport.py", line 78, in connect
websocket (stderr) | self._connect(self.host, self.port, self.connect_timeout)
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/amqp/transport.py", line 146, in _connect
websocket (stderr) | raise (e
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/amqp/transport.py", line 162, in _connect
websocket (stderr) | self.sock.connect(sa)
websocket (stderr) | File "/usr/local/lib/python3.8/site-packages/gevent/_socketcommon.py", line 607, in connect
websocket (stderr) | raise _SocketError(err, strerror(err))
websocket (stderr) | ConnectionRefusedError: [Errno 111] Connection refused
worker (stderr) | [2021-05-11 15:06:13,970: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused.
worker (stderr) | Trying again in 32.00 seconds... (16/100)
But when I open localhost:5000/login it does show me the login page. So I tried making an account but it game me error that something went wrong.
and here are the logs on signup:
PARAMETERS
web (stderr) |
web (stderr) | NestedMultiDict([('__formid__', 'deform'), ('csrf_token', 'a9abf1391c09486ba402d75fcfa11f90'), ('username', 'admin'), ('email', '[email protected]'), ('password', '******'), ('privacy_accepted', 'true'), ('comms_opt_in', 'true')])
web (stderr) |
web (stderr) |
web (stderr) | UNAUTHENTICATED USER
web (stderr) |
web (stderr) | None
web (stderr) |
web (stderr) | Traceback (most recent call last):
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1770, in _execute_context
web (stderr) | self.dialect.do_execute(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 717, in do_execute
web (stderr) | cursor.execute(statement, parameters)
web (stderr) | psycopg2.errors.UndefinedTable: relation "user" does not exist
web (stderr) | LINE 2: FROM "user"
web (stderr) | ^
web (stderr) |
web (stderr) |
web (stderr) | The above exception was the direct cause of the following exception:
web (stderr) |
web (stderr) | Traceback (most recent call last):
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid_exclog/__init__.py", line 134, in exclog_tween
web (stderr) | response = handler(request)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 35, in tween
web (stderr) | return check(request, handler, registry)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 110, in ascii_safe_redirects_tween_factory
web (stderr) | response = handler(request)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid/router.py", line 147, in handle_request
web (stderr) | response = _call_view(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sentry_sdk/integrations/pyramid.py", line 90, in sentry_patched_call_view
web (stderr) | return old_call_view(registry, request, *args, **kwargs)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid/view.py", line 683, in _call_view
web (stderr) | response = view_callable(context, request)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid/config/views.py", line 169, in __call__
web (stderr) | return view(context, request)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid/config/views.py", line 188, in attr_view
web (stderr) | return view(context, request)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid/config/views.py", line 214, in predicate_wrapper
web (stderr) | return view(context, request)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid/viewderivers.py", line 436, in rendered_view
web (stderr) | result = view(context, request)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/pyramid/viewderivers.py", line 116, in _class_requestonly_view
web (stderr) | response = getattr(inst, attr)()
web (stderr) | File "/var/lib/hypothesis/h/views/account_signup.py", line 47, in post
web (stderr) | appstruct = self.form.validate(self.request.POST.items())
web (stderr) | File "/usr/local/lib/python3.8/site-packages/deform/field.py", line 762, in validate
web (stderr) | return self.validate_pstruct(pstruct)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/deform/field.py", line 797, in validate_pstruct
web (stderr) | appstruct = self.schema.deserialize(cstruct)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 2347, in deserialize
web (stderr) | appstruct = self.typ.deserialize(self, cstruct)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 827, in deserialize
web (stderr) | return self._impl(node, cstruct, callback)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 782, in _impl
web (stderr) | sub_result = callback(subnode, subval)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 825, in callback
web (stderr) | return subnode.deserialize(subcstruct)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 2381, in deserialize
web (stderr) | self.validator(self, appstruct)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 255, in __call__
web (stderr) | validator(node, value)
web (stderr) | File "/var/lib/hypothesis/h/accounts/schemas.py", line 53, in unique_username
web (stderr) | user = models.User.get_by_username(request.db, value, request.default_authority)
web (stderr) | File "/var/lib/hypothesis/h/models/user.py", line 332, in get_by_username
web (stderr) | session.query(cls)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 2750, in first
web (stderr) | return self.limit(1)._iter().first()
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 2834, in _iter
web (stderr) | result = self.session.execute(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1677, in execute
web (stderr) | result = conn._execute_20(statement, params or {}, execution_options)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1582, in _execute_20
web (stderr) | return meth(self, args_10style, kwargs_10style, execution_options)
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 320, in _execute_on_connection
web (stderr) | return connection._execute_clauseelement(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1451, in _execute_clauseelement
web (stderr) | ret = self._execute_context(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1813, in _execute_context
web (stderr) | self._handle_dbapi_exception(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1994, in _handle_dbapi_exception
web (stderr) | util.raise_(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
web (stderr) | raise exception
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1770, in _execute_context
web (stderr) | self.dialect.do_execute(
web (stderr) | File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 717, in do_execute
web (stderr) | cursor.execute(statement, parameters)
web (stderr) | sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "user" does not exist
web (stderr) | LINE 2: FROM "user"
web (stderr) | ^
web (stderr) |
web (stderr) | [SQL: SELECT "user".username AS user_username, "user".id AS user_id, "user".authority AS user_authority, "user".display_name AS user_display_name, "user".description AS user_description, "user".location AS user_location, "user".uri AS user_uri, "user".orcid AS user_orcid, "user".admin AS user_admin, "user".staff AS user_staff, "user".nipsa AS user_nipsa, "user".sidebar_tutorial_dismissed AS user_sidebar_tutorial_dismissed, "user".privacy_accepted AS user_privacy_accepted, "user".comms_opt_in AS user_comms_opt_in, "user".email AS user_email, "user".last_login_date AS user_last_login_date, "user".registered_date AS user_registered_date, "user".activation_date AS user_activation_date, "user".activation_id AS user_activation_id, "user".password AS user_password, "user".password_updated AS user_password_updated, "user".salt AS user_salt
web (stderr) | FROM "user"
web (stderr) | WHERE lower(replace("user".username, '.', '')) = lower(replace(%(replace_1)s, '.', '')) AND "user".authority = %(authority_1)s
web (stderr) | LIMIT %(param_1)s]
+1
That version of the install guide is pretty old (0.4.0), and the "install guide" section of the docs appear to have been removed at some point (so there's not an equivalent place to refer you to-- Installing h in a development environment is probably the closest, but has options that are more appropriate for development. Be sure to read the annotations in those pages-- some are quite helpful).
Many things have changed between when those docs were written and the hypothesis/hypothesis:latest image that you're probably getting from docker (among other things NSQ and redis are no longer being used, with celery/rabbitMQ instead of NSQ), so you would have to adjust things accordingly and some combination of your errors could be related. Also, I think the relation "user" does not exist error is arising because the base docker image doesn't automatically provision the database-- to to that, you'd have to do something from inside the hypothesis container (e.g., with docker exec) like:
bin/hypothesis init
bin/hypothesis migrate upgrade head
For more ideas that might be helpful for what you are trying to do, take a look at #4899
Closing due to lack of activity. If this continues to be an issue, please reopen with additional context.