Closed rndmh3ro closed 1 year ago
I'm running the docker-compose setup.
I created a rulebook activation via the GUI. The API-response for the activation is this:
{ "name": "test5", "rulebook_id": 14, "inventory_id": 3, "extra_var_id": 4, "working_directory": "/tmp", "execution_environment": "alpine:latest", "project_id": 4, "id": 11 }
When saving the activation, the logs ouput this:
eda-postgres | 2022-11-03 17:09:47.938 UTC:client backend:[2420]: LOG: execute __asyncpg_stmt_70__: INSERT INTO activation_instance (name, rulebook_id, inventory_id, extra_var_id, working_directory, exe cution_environment, project_id) VALUES ($1::varchar, $2::integer, $3::integer, $4::integer, $5::varchar, $6::varchar, $7::integer) RETURNING activation_instance.id, activation_instance.large_data_id eda-postgres | 2022-11-03 17:09:47.938 UTC:client backend:[2420]: DETAIL: parameters: $1 = 'test5', $2 = '14', $3 = '3', $4 = '4', $5 = '/tmp', $6 = 'alpine:latest', $7 = '4' eda-server | [1] 2022-11-03 17:09:48,016 ERROR Failed to start container: DockerError(900, 'Cannot connect to Docker Engine via unix:///run/docker.sock [Cannot connect to unix socket /run/docker.soc k ssl:default [Permission denied]]') eda-server | [1] 2022-11-03 17:09:48,019 INFO 192.168.199.33:33316 - "POST /api/activation_instance HTTP/1.0" 500 Internal Server Error eda-frontend | 192.168.199.33 - - [03/Nov/2022:17:09:48 +0000] "POST /api/activation_instance HTTP/1.1" 500 21 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0" "-" eda-server | [1] 2022-11-03 17:09:48,021 ERROR Exception in ASGI application eda-server | Traceback (most recent call last): eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiohttp/connector.py", line 1378, in _create_connection eda-server | _, proto = await self._loop.create_unix_connection( eda-server | File "/usr/lib64/python3.9/asyncio/unix_events.py", line 244, in create_unix_connection eda-server | await self.sock_connect(sock, path) eda-server | File "/usr/lib64/python3.9/asyncio/selector_events.py", line 502, in sock_connect eda-server | return await fut eda-server | File "/usr/lib64/python3.9/asyncio/selector_events.py", line 507, in _sock_connect eda-server | sock.connect(address) eda-server | PermissionError: [Errno 13] Permission denied eda-server | eda-server | The above exception was the direct cause of the following exception: eda-server | eda-server | Traceback (most recent call last): eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/docker.py", line 248, in _do_query eda-server | response = await self.session.request( eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiohttp/client.py", line 536, in _request eda-server | conn = await self._connector.connect( eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiohttp/connector.py", line 540, in connect eda-server | proto = await self._create_connection(req, traces, timeout) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiohttp/connector.py", line 1384, in _create_connection eda-server | raise UnixClientConnectorError(self.path, req.connection_key, exc) from exc eda-server | aiohttp.client_exceptions.UnixClientConnectorError: Cannot connect to unix socket /run/docker.sock ssl:default [Permission denied] eda-server | eda-server | During handling of the above exception, another exception occurred: eda-server | eda-server | Traceback (most recent call last): eda-server | File "/opt/app-root/src/src/eda_server/ruleset.py", line 123, in activate_rulesets eda-server | await aiodocker.images.DockerImages(docker).pull( eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/images.py", line 133, in _handle_list eda-server | async with cm as response: eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/utils.py", line 309, in __aenter__ eda-server | resp = await self._coro eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/docker.py", line 240, in _do_query eda-server | await self._check_version() [0/7105] eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/docker.py", line 192, in _check_version eda-server | ver = await self._query_json("version", versioned_api=False) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/docker.py", line 300, in _query_json eda-server | async with self._query( eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/utils.py", line 309, in __aenter__ eda-server | resp = await self._coro eda-server | File "/opt/app-root/lib64/python3.9/site-packages/aiodocker/docker.py", line 261, in _do_query eda-server | raise DockerError( eda-server | aiodocker.exceptions.DockerError: DockerError(900, 'Cannot connect to Docker Engine via unix:///run/docker.sock [Cannot connect to unix socket /run/docker.sock ssl:default [Permission deni ed]]') eda-server | eda-server | During handling of the above exception, another exception occurred: eda-server | eda-server | Traceback (most recent call last): eda-server | File "/opt/app-root/lib64/python3.9/site-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi eda-server | result = await app( # type: ignore[func-returns-value] eda-server | File "/opt/app-root/lib64/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__ eda-server | return await self.app(scope, receive, send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/fastapi/applications.py", line 270, in __call__ eda-server | await super().__call__(scope, receive, send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/applications.py", line 124, in __call__ eda-server | await self.middleware_stack(scope, receive, send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/middleware/errors.py", line 184, in __call__ eda-server | raise exc eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/middleware/errors.py", line 162, in __call__ eda-server | await self.app(scope, receive, _send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/middleware/cors.py", line 92, in __call__ eda-server | await self.simple_response(scope, receive, send, request_headers=headers) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/middleware/cors.py", line 147, in simple_response eda-server | await self.app(scope, receive, send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/middleware/exceptions.py", line 75, in __call__ eda-server | raise exc eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/middleware/exceptions.py", line 64, in __call__ eda-server | await self.app(scope, receive, sender) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__ eda-server | raise e eda-server | File "/opt/app-root/lib64/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__ eda-server | await self.app(scope, receive, send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/routing.py", line 680, in __call__ eda-server | await route.handle(scope, receive, send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/routing.py", line 275, in handle eda-server | await self.app(scope, receive, send) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/starlette/routing.py", line 65, in app eda-server | response = await func(request) eda-server | File "/opt/app-root/lib64/python3.9/site-packages/fastapi/routing.py", line 231, in app eda-server | raw_response = await run_endpoint_function( eda-server | File "/opt/app-root/lib64/python3.9/site-packages/fastapi/routing.py", line 160, in run_endpoint_function eda-server | return await dependant.call(**values) eda-server | File "/opt/app-root/src/src/eda_server/api/activation.py", line 309, in create_activation_instance eda-server | await activate_rulesets( eda-server | File "/opt/app-root/src/src/eda_server/ruleset.py", line 156, in activate_rulesets eda-server | await container.delete() eda-server | UnboundLocalError: local variable 'container' referenced before assignment eda-server | [1] 2022-11-03 17:09:48,136 INFO 192.168.199.33:33324 - "GET /api/activation_instances HTTP/1.0" 200 OK eda-frontend | 192.168.199.33 - - [03/Nov/2022:17:09:48 +0000] "GET /api/activation_instances HTTP/1.1" 200 759 "http://localhost:8080/eda/activations" "Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20
It seems the container wants to be started but it's not working because of missing permissions. Is this supposed to work?
@rndmh3ro The value for execution_environment should be a full URL link to an existing image, e.g. quay.io/aizquier/eda-server:latest
execution_environment
quay.io/aizquier/eda-server:latest
Thanks!
I'm running the docker-compose setup.
I created a rulebook activation via the GUI. The API-response for the activation is this:
When saving the activation, the logs ouput this:
It seems the container wants to be started but it's not working because of missing permissions. Is this supposed to work?