Kappelt gBridge на Raspberry Pi - PullRequest
       22

Kappelt gBridge на Raspberry Pi

0 голосов
/ 26 января 2019

Я пытаюсь установить Kappelt gBridge на Raspberry Pi 3 модель B, используя это руководство: https://doc.gbridge.io/selfHosted/hostItYourself.html

Я сгенерировал docker-compose.yml, используя этот генератор: https://about.gbridge.io/dockergen/. Я использую свои собственные серверы MySQL и MQTT, но Redis внутри Docker. Затем изменил изображение redis с «redis: 4» на «hypriot / rpi-redis: latest».

Вот мой докер-compose.yml:

version: '3'
networks:
   backend:
      driver: bridge
   web_frontend:
      driver: bridge
services:
   web:
      image: 'pkap/gbridge-web:latest'
      restart: always
      ports:
         - '8082:80'
      environment:
         APP_ENV: production
         APP_KEY: [secret]
         APP_DEBUG: 'false'
         APP_LOG_LEVEL: warning
         APP_URL: 'http://localhost'
         DB_CONNECTION: mysql
         DB_HOST: 192.168.1.92
         DB_PORT: '3306'
         DB_DATABASE: gbridge
         DB_USERNAME: gbridge
         DB_PASSWORD: [secret]
         BROADCAST_DRIVER: log
         CACHE_DRIVER: file
         SESSION_DRIVER: file
         SESSION_LIFETIME: 120
         QUEUE_DRIVER: sync
         REDIS_HOST: cache
         REDIS_PASSWORD: 'null'
         REDIS_PORT: '6379'
         MAIL_DRIVER: smtp
         MAIL_HOST: ERROR
         MAIL_PORT: ERROR
         MAIL_USERNAME: ERROR
         MAIL_PASSWORD: ERROR
         MAIL_ENCRYPTION: ERROR
         GOOGLE_CLIENTID: [secret]
         GOOGLE_PROJECTID: [secret]
      links:
         - cache
      depends_on:
         - cache
      networks:
         - web_frontend
         - backend
   redis-worker:
      image: 'pkap/gbridge-redis-worker:latest'
      restart: always
      environment:
         GBRIDGE_REDISWORKER_REDIS: 'redis://cache:6379'
         GBRIDGE_REDISWORKER_MQTT: 'mqtt://192.168.1.93:1883'
         GBRIDGE_REDISWORKER_MQTTUSER: gbridge
         GBRIDGE_REDISWORKER_MQTTPASSWORD: [secret]
         GBRIDGE_REDISWORKER_HOMEGRAPHKEY: [secret]
      networks:
         - backend
      links:
         - cache
      depends_on:
         - cache
   cache:
      image: 'hypriot/rpi-redis:latest'
#      image: 'redis:4'
      restart: always
      expose:
         - '6379'
      networks:
         - backend

При запуске я получил следующий вывод:

pi@PI5:/opt/gbridge $ sudo docker-compose up
Creating network "gbridge_web_frontend" with driver "bridge"
Creating network "gbridge_backend" with driver "bridge"
Pulling web (pkap/gbridge-web:latest)...
latest: Pulling from pkap/gbridge-web
5e6ec7f28fb7: Pull complete
cf165947b5b7: Pull complete
7bd37682846d: Pull complete
99daf8e838e1: Pull complete
ae320713efba: Pull complete
ebcb99c48d8c: Pull complete
9867e71b4ab6: Pull complete
936eb418164a: Pull complete
dfa2ee5b92b5: Pull complete
1d7c2c4e167c: Pull complete
6cca41ef2bb3: Pull complete
bef66d80d31c: Pull complete
a8f43605d68c: Pull complete
47d407538c8d: Pull complete
c2797628ac4c: Pull complete
a34d45d05e93: Pull complete
2fe5576814be: Pull complete
a063192606ae: Pull complete
a37fa9e3ac80: Pull complete
caca02ee174f: Pull complete
a09b4aa1d2d4: Pull complete
054e4215a923: Pull complete
65491e91c688: Pull complete
ab9be62f37ed: Pull complete
3d758b0e9492: Pull complete
a9e75786a08e: Pull complete
b8f6d39ac5c2: Pull complete
e54728c3516e: Pull complete
ea7523212e8f: Pull complete
a6372d49dd57: Pull complete
a855663b44bc: Pull complete
Creating gbridge_cache_1 ... done
Creating gbridge_redis-worker_1 ... done
Creating gbridge_web_1          ... done
Attaching to gbridge_cache_1, gbridge_redis-worker_1, gbridge_web_1
redis-worker_1  | standard_init_linux.go:207: exec user process caused "exec format error"
web_1           | standard_init_linux.go:207: exec user process caused "exec format error"
cache_1         | 1:C 26 Jan 14:29:17.537 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
cache_1         | 1:M 26 Jan 14:29:17.548 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
cache_1         |                 _._                                                  
cache_1         |            _.-``__ ''-._                                             
cache_1         |       _.-``    `.  `_.  ''-._           Redis 3.0.0 (00000000/0) 32 bit
cache_1         |   .-`` .-```.  ```\/    _.,_ ''-._                                   
cache_1         |  (    '      ,       .-`  | `,    )     Running in standalone mode
cache_1         |  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
cache_1         |  |    `-._   `._    /     _.-'    |     PID: 1
cache_1         |   `-._    `-._  `-./  _.-'    _.-'                                   
cache_1         |  |`-._`-._    `-.__.-'    _.-'_.-'|                                  
cache_1         |  |    `-._`-._        _.-'_.-'    |           http://redis.io        
cache_1         |   `-._    `-._`-.__.-'_.-'    _.-'                                   
cache_1         |  |`-._`-._    `-.__.-'    _.-'_.-'|                                  
cache_1         |  |    `-._`-._        _.-'_.-'    |                                  
cache_1         |   `-._    `-._`-.__.-'_.-'    _.-'                                   
cache_1         |       `-._    `-.__.-'    _.-'                                       
cache_1         |           `-._        _.-'                                           
cache_1         |               `-.__.-'                                               
cache_1         | 
cache_1         | 1:M 26 Jan 14:29:17.551 # Server started, Redis version 3.0.0
cache_1         | 1:M 26 Jan 14:29:17.551 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
cache_1         | 1:M 26 Jan 14:29:17.551 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
cache_1         | 1:M 26 Jan 14:29:17.551 * The server is now ready to accept connections on port 6379
gbridge_redis-worker_1 exited with code 1
redis-worker_1  | standard_init_linux.go:207: exec user process caused "exec format error"
redis-worker_1  | standard_init_linux.go:207: exec user process caused "exec format error"
redis-worker_1  | standard_init_linux.go:207: exec user process caused "exec format error"
gbridge_web_1 exited with code 1
gbridge_redis-worker_1 exited with code 1
gbridge_redis-worker_1 exited with code 1
gbridge_web_1 exited with code 1
gbridge_redis-worker_1 exited with code 1
Exception in thread Thread-10:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/docker/api/client.py", line 256, in _raise_for_status
    response.raise_for_status()
  File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: http+docker://localhost/v1.25/containers/7dee1246e16ca1e28d703e4fe1ab0e1da958741d0fd6562e429da1bf8b291a61/attach?stream=1&logs=0&stderr=1&stdout=1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.5/dist-packages/compose/cli/log_printer.py", line 233, in watch_events
    event['container'].attach_log_stream()
  File "/usr/local/lib/python3.5/dist-packages/compose/container.py", line 215, in attach_log_stream
    self.log_stream = self.attach(stdout=True, stderr=True, stream=True)
  File "/usr/local/lib/python3.5/dist-packages/compose/container.py", line 307, in attach
    return self.client.attach(self.id, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/docker/utils/decorators.py", line 19, in wrapped
    return f(self, resource_id, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/docker/api/container.py", line 61, in attach
    response, stream, self._check_is_tty(container), demux=demux)
  File "/usr/local/lib/python3.5/dist-packages/docker/api/client.py", line 395, in _read_from_socket
    socket = self._get_raw_response_socket(response)
  File "/usr/local/lib/python3.5/dist-packages/docker/api/client.py", line 306, in _get_raw_response_socket
    self._raise_for_status(response)
  File "/usr/local/lib/python3.5/dist-packages/docker/api/client.py", line 258, in _raise_for_status
    raise create_api_error_from_http_exception(e)
  File "/usr/local/lib/python3.5/dist-packages/docker/errors.py", line 31, in create_api_error_from_http_exception
    raise cls(e, response=response, explanation=explanation)
docker.errors.APIError: 409 Client Error: Conflict ("b'container 7dee1246e16ca1e28d703e4fe1ab0e1da958741d0fd6562e429da1bf8b291a61 is restarting, wait until the container is running'")

gbridge_web_1 exited with code 1

1 Ответ

0 голосов
/ 20 мая 2019

Имена образов, которые вы пытаетесь назвать, не поддерживают архитектуру чипа Raspberry Pi 3:

redis-worker_1 | standard_init_linux.go: 207: пользовательский процесс exec вызвал «ошибку формата exec» web_1 | standard_init_linux.go: 207: пользовательский процесс exec вызвал «ошибку формата exec»

Вы можете решить эту проблему, вызвав эти пакеты вместо docker-compose.yml:

  • pkap/gbridge-redis-worker:arm32v6-latest
  • pkap/gbridge-web-fpm:arm32v6-latest

Я столкнулся с той же проблемой, см. мою проблему на GitHub .

...