rairprotocol / rair-dapp

Source code for RAIRprotocol ecosystem
https://rairprotocol.org
Apache License 2.0
1.35k stars 933 forks source link

Akash Network Docker Engine error. Not able to connect on Docker engine on up command #170

Closed RAIReth closed 3 days ago

RAIReth commented 3 weeks ago

Tested on Akash plain linux.

Ubuntu 24.04 with 4vcpu 16gb ram.

SSH and all steps work.

Fails at the very last step of docker up.

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? root@service-1-0:/mnt/data/RAIR/rair-dapp# sudo systemctl status docker System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down

--

For any community devs to try. Follow our command line guide here. (you just need to paste in all of the commands in order)

https://docs.rairprotocol.org/rairprotocol/installation-and-testing/getting-started

--

Akash config

akash-config

sarora180673 commented 3 weeks ago

Error logs

root@service-1-0:/mnt/data/RAIR/rair-dapp# sudo /usr/local/bin/docker-compose -f docker-compose-web.yml up -d WARN[0000] The "kohler_meeting_id" variable is not set. Defaulting to a blank string. WARN[0000] The "yoti_client_id" variable is not set. Defaulting to a blank string. WARN[0000] The "sentry_dsn" variable is not set. Defaulting to a blank string. WARN[0000] The "sentry_dsn" variable is not set. Defaulting to a blank string. WARN[0000] The "sentry_dsn" variable is not set. Defaulting to a blank string. WARN[0000] /mnt/data/RAIR/rair-dapp/docker-compose-web.yml: version is obsolete Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? root@service-1-0:/mnt/data/RAIR/rair-dapp# sudo systemctl status docker System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down root@service-1-0:/mnt/data/RAIR/rair-dapp# sudo service docker restart

Zblocker64 commented 3 weeks ago

So your issue is that you’re trying to install docker and run docker inside a docker container. Let’s just run the docker container instead of installing Ubuntu and then installing docker

Zblocker64 commented 3 weeks ago

Do you have a docker image that is available on docker hub?

RAIReth commented 3 weeks ago

Do you have a docker image that is available on docker hub?

That's an awesome insight @Zblocker64 - if we can run docker direct then we don't need to do this container inside a container thing.

Our docker hub is here. https://hub.docker.com/u/rairprotocol

each microservice node (backend) front sync and media can all be run from this preconfigured yaml file with an up -d compose command

https://github.com/rairprotocol/rair-dapp/blob/dev/docker-compose.local-new.yml

Will also try this on our end!

RAIReth commented 3 weeks ago

Hey @Zblocker64 we did research into the Akash docker deployment flow and realized that this approach will most closely resemble our k8 setup on GCP.

As we have 4 docker containers for each microservice, we can't use the simple single VM approach on Akash per the docker inside docker issue.

We'll need to deploy each microservice individually, then figure out the cross-container communication (ports nginx etc)

--

Our question - do you know if Akash can ingest our existing manifest files? We published our k8 setup files in this folder here rair-infra

https://github.com/rairprotocol/rair-dapp/tree/main/rair-infra

Zblocker64 commented 3 weeks ago

There is no import, but it is relatively easy to transfer over the parameters. Also, I thought there was six? Including the mongo db and the redis. Or are those separate from this deployment?

sarora180673 commented 3 weeks ago

Yes, mongodb, Redis and 4 other services (rair-front, rair-node, rair-stream, rair-sync)

Zblocker64 commented 3 weeks ago

So this is the SDL I have built. You still need to add in all the environment variables, but once you do that I think it should work.

version: "2.0"
services:
  mongo:
    image: mongo:latest
    expose:
      - port: 27017
        as: 27017
        proto: tcp
        to:
          - global: false
          - service: rair-front
          - service: rair-node
          - service: rair-stream
          - service: rair-sync
          - service: redis
    env:
      - Environment=Variables
  rair-front:
    image: rairprotocol/rair-front:fa6fef8daa324a35ac6d38f0f81c01a570d1bf06
    expose:
      - port: 8088
        as: 80
        to:
          - global: true
          - service: rair-node
          - service: rair-stream
          - service: rair-sync
          - service: redis
          - service: mongo
    env:
      - Environment=Variables
  rair-node:
    image: rairprotocol/rair-node:fa6fef8daa324a35ac6d38f0f81c01a570d1bf06
    expose:
      - port: 3000
        as: 3000
        proto: tcp
        to:
          - global: false
          - service: rair-front
          - service: rair-stream
          - service: rair-sync
          - service: redis
          - service: mongo
      - port: 5000
        as: 5000
        proto: tcp
        to:
          - global: false
          - service: rair-front
          - service: rair-stream
          - service: rair-sync
    env:
      - Environment=Variables
  rair-stream:
    image: rairprotocol/rair-stream:fa6fef8daa324a35ac6d38f0f81c01a570d1bf06
    expose:
      - port: 5002
        as: 5002
        proto: tcp
        to:
          - global: false
          - service: rair-front
          - service: rair-node
          - service: rair-sync
          - service: redis
          - service: mongo
    env:
      - Environment=Variables
  rair-sync:
    image: rairprotocol/rair-sync:fa6fef8daa324a35ac6d38f0f81c01a570d1bf06
    expose:
      - port: 5001
        as: 5001
        proto: tcp
        to:
          - global: false
          - service: rair-front
          - service: rair-node
          - service: rair-stream
          - service: redis
          - service: mongo
    env:
      - Environment=Variables
  redis:
    image: redis:6.2.3-alpine
    expose:
      - port: 6379
        as: 6379
        proto: tcp
        to:
          - global: false
          - service: rair-front
          - service: rair-node
          - service: rair-stream
          - service: rair-sync
          - service: mongo
    command:
      - redis-server
    args:
      - 
        --protected-mode
        no
    env:
      - Environment=Variables
profiles:
  compute:
    mongo:
      resources:
        cpu:
          units: 1
        memory:
          size: 2Gi
        storage:
          - size: 5Gi
    rair-front:
      resources:
        cpu:
          units: 1
        memory:
          size: 2Gi
        storage:
          - size: 5Gi
    rair-node:
      resources:
        cpu:
          units: 1
        memory:
          size: 2Gi
        storage:
          - size: 5Gi
    rair-stream:
      resources:
        cpu:
          units: 1
        memory:
          size: 2Gi
        storage:
          - size: 5Gi
    rair-sync:
      resources:
        cpu:
          units: 1
        memory:
          size: 2Gi
        storage:
          - size: 5Gi
    redis:
      resources:
        cpu:
          units: 1
        memory:
          size: 2Gi
        storage:
          - size: 5Gi
  placement:
    dcloud:
      pricing:
        mongo:
          denom: uakt
          amount: 1000
        rair-front:
          denom: uakt
          amount: 1000
        rair-node:
          denom: uakt
          amount: 1000
        rair-stream:
          denom: uakt
          amount: 1000
        rair-sync:
          denom: uakt
          amount: 1000
        redis:
          denom: uakt
          amount: 1000
deployment:
  mongo:
    dcloud:
      profile: mongo
      count: 1
  rair-front:
    dcloud:
      profile: rair-front
      count: 1
  rair-node:
    dcloud:
      profile: rair-node
      count: 1
  rair-stream:
    dcloud:
      profile: rair-stream
      count: 1
  rair-sync:
    dcloud:
      profile: rair-sync
      count: 1
  redis:
    dcloud:
      profile: redis
      count: 1
Zblocker64 commented 3 weeks ago

If you want a provider to test it on let me know. I run a provider and can give you a steep discount for testing

sarora180673 commented 3 weeks ago

Thanks,let me add environment variables and check if this SDL can be deployed on Plain Linux.

RAIReth commented 3 weeks ago

If you want a provider to test it on let me know. I run a provider and can give you a steep discount for testing

We'd love that. Having a default in the vite.config.ts we can point to an Akash k8 instance would be epic. Then new devs can use the akash cloud version of our backend and just modify their rair-front microservice for their unique app logic

Zblocker64 commented 3 weeks ago

Ok. Send me your wallet address so I can do some manual pricing for you for the next little bit. Once it’s up and running I’ll revert back to my normal pricing(it’s still cheep). If you have discord my username is Zblocker64

RAIReth commented 3 weeks ago

Ok. Send me your wallet address so I can do some manual pricing for you for the next little bit. Once it’s up and running I’ll revert back to my normal pricing(it’s still cheep). If you have discord my username is Zblocker64

Awesome will ping you with the cosmos address on discord

RAIReth commented 2 weeks ago

Template SDL uploaded here https://console.akash.network/template/57e71df3-7342-41d9-8b9c-e2fb055e4ffb