Подключите 2 образа Docker для label-studio

Я использую Windows, я пытаюсь запустить label-studio на docker-img и включить автоматические аннотации с помощью модели машинного обучения tesseract, предоставленной из label-studio-ml-backend на другом docker-img. (В эти дни я открываю для себя докер...)

Настраивать:

На данный момент мне удалось запустить докер с помощью label-studio и докер с tesseract:

      # Run the label-studio
docker run --name lbl-studio -it -p 8080:8080 -v label-studio-data:/label-studio/data/ heartexlabs/label-studio:latest label-studio

# DL and run tesseract image
git clone https://github.com/heartexlabs/label-studio-ml-backend
cd label-studio-ml-backend/label_studio_ml/examples/tesseract/
docker-compose up

На данный момент у меня есть 2 изображения, работающие в докере (или 3/4, я действительно не знаю, как интерпретировать изображение «тессеракта»)

Сеть:

Вот некоторую информацию о сети, которую я смог собрать, я не знаю, как это связано с тем фактом, что lbl-studio находится на 172.17, а две другие - на 172.18...

      # Get ips of images 
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' server # 172.18.0.3
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis  # 172.18.0.2
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' lbl-studio  # 172.17.0.2
# server: 172.18.0.3
# redis: 172.18.0.2
# lbl-studio: 172.17.0.2

пока Redis может пинговать сервер, но не может пинговать lbl-studio

Проблема:

Но когда я перехожу по адресу http://127.0.0.1:8080/ , создаю проект и пытаюсь связать мастер машинного обучения ( http://127.0.0.1:8080/projects/1/settings/ml > добавить модель ), я не могу подключить сервер tesseract к lbl-studio.

URL-адреса, которые я пытался подключить:

Идти дальше:

Я пробовал копать глубже и пинговать сервер из lbl-studio, но ничего не вышло

      docker exec -it --user root lbl-studio /bin/bash
apt update
apt install iputils-ping
ping 127.18.0.3  # Nothing happening: 100% packet loss ;)

Вопрос:

Как подключить lbl-studio к серверу?

Спасибо за помощь :)

2 ответа

Добавьте в файл docker-compose tesseract в качестве третьего сервиса. Для подключения к сервисам с компьютера используйте и http://127.0.0.1:9090http://127.0.0.1:9090 . Для подключения междуtesseractиlbl-studioиспользуйте имя сервисов: http://lbl-studio:8080 и http://server:9090. Пример:

      version: "3.8"

services:
  redis:
    image: redis:alpine
    container_name: redis
    hostname: redis
    volumes:
      - "./data/redis:/data"
    expose:
      - 6379
  server:
    container_name: server
    build: .
    environment:
      - MODEL_DIR=/data/models
      - RQ_QUEUE_NAME=default
      - REDIS_HOST=redis
      - REDIS_PORT=6379
    ports:
      - 9090:9090
    depends_on:
      - redis
    links:
      - redis
    volumes:
      - "./data/server:/data"
      - "./logs:/tmp"

  lbl-studio:
   image: heartexlabs/label-studio:latest
   ports:
    - 8080:8080
   volumes: 
    - label-studio-data:/label-studio/data/

volumes:
  label-studio-data:

Ответ @artem идеален: он добавляет машину lbl-studio в многоконтейнерную архитектуру tesseract, определенную в файле tesseract-docker-compose , и в конце добавляет общий том, потрясающе!

Другой способ добиться аналогичных результатов, который сохранит исходную структуру проекта, — это поместить штуку tesseract-multi-container в мостовую сеть, добавивnetwork_mode: bridgeна обеих машинах tesseract в файле docker-compose.yml:

      version: "3.8"

services:
  redis:
    image: redis:alpine
    container_name: redis
    hostname: redis
    volumes:
      - "./data/redis:/data"
    expose:
      - 6379
    network_mode: bridge  # <-- here

  server:
    container_name: server
    build: .
    environment:
      - MODEL_DIR=/data/models
      - RQ_QUEUE_NAME=default
      - REDIS_HOST=redis
      - REDIS_PORT=6379
    ports:
      - 9090:9090
    depends_on:
      - redis
    links:
      - redis
    volumes:
      - "./data/server:/data"
      - "./logs:/tmp"
    network_mode: bridge  # <-- and here

Спасибо за поддержку

Другие вопросы по тегам