Skip to content

Запуск системы Emcee без Kubernetes

Ручной запуск контейнеров#

Для запуска Emcee без Kubernetes потребуется создать network для Docker и запустить все необходимые контейнеры вручную.

Создаем сеть для Docker-контейнеров с любым именем. Например, emcee-network:

docker network create emcee-network

Скачиваем и запускаем контейнер с очередью и указываем сеть, в которой будет работать контейнер. Дополнительно указывается параметр --publish для маппинга порта хоста на порт контейнера и открытия внешнего доступа к контейнеру с очередью:

docker run --detach --rm --name emcee-queue-service --network emcee-network --publish 41000:41000 avitotech/emcee-queue:20.1.0

Скачиваем и запускаем контейнер с воркером. Таких контейнеров может быть запущено несколько, для этого каждому контейнеру нужно задать своё имя:

docker run --detach --rm --name queue-worker1 --network emcee-network --device /dev/kvm avitotech/emcee-worker:20.1.0

Скачиваем и запускаем контейнер с Artifactory. Дополнительная настройка Artifactory будет описана ниже.

docker run --detach --network emcee-network --publish 8081:8081 --publish 8082:8082 --name emcee-artifactory-service --volume emcee_artifactory:/var/opt/jfrog/artifactory docker.bintray.io/jfrog/artifactory-oss:latest

Чтобы убедиться, что очередь запущена, можно подключиться к её контейнеру и увидеть логи:

docker logs --follow <queue_container_id>

Запуск с помощью Docker Compose#

Описанный выше алгоритм ручного запуска можно упростить с помощью Docker Compose.

Сперва нужно создать файл конфигурации docker-compose.yml

docker-compose.yml
version: '3'
services:
  emcee-queue-service:
    image: avitotech/emcee-queue:20.1.0
    container_name: emcee-queue-service
    ports:
      - 41000:41000

  queue-worker:
    image: avitotech/emcee-worker:20.1.0
    env_file:
      - emcee-worker.env
    depends_on:
      - emcee-queue-service
    deploy:
      replicas: 3
    devices:
      - "/dev/kvm:/dev/kvm"

  emcee-artifactory:
    image: docker.bintray.io/jfrog/artifactory-oss:latest
    container_name: emcee-artifactory
    ports:
      - 8081:8081
      - 8082:8082
    volumes:
      - emcee_artifactory:/var/opt/jfrog/artifactory
volumes:
  emcee_artifactory:

Рядом с docker-compose.yml нужно создать файл emcee-worker.env, в котором можно описать переменные окружения для конфигурации воркера или оставить файл пустым. См. главу Конфигурация воркера).

Пример emcee-worker.env:

emcee-worker.env
EMCEE_WORKER_QUEUE_URL=http://emcee-queue-service:41000
EMCEE_WORKER_LOG_LEVEL=info

А потом вызвать команду docker compose up в директории, где создан файл docker-compose.yml.

Эта команда запустит очередь, 3 воркера и Artifactory.

Получение адресов очереди и Artifactory#

Если развернуть Emcee через Docker или Docker Compose локально, то локальные адреса будут выглядеть как:

  • http://localhost:41000/ для очереди
  • http://localhost:8081/ для Artifactory

Где порты соответствуют портам, указанным выше при запуске контейнеров. Для очереди это 41000, а для Artifactory это 8082.

Если Emcee развернута на удаленном компьютере, то доступ до него нужно настроить в зависимости от кофигурации вашей сети.