Как создать каталоги для каждого экземпляра, используя docker-compose - PullRequest
0 голосов
/ 07 марта 2019

Я использую docker-compose для настройки приложения. используя базу данных orientdb, которая использует хранилище файлов для сохранения данных. Когда я масштабирую службу базы данных, все экземпляры указывают на одноименный том "db_data".

services:
 orient-db:
    image: orientdb:3.0.1
    entrypoint: /orientdb/bin/server.sh -Ddistributed=true
    environment:
        ORIENTDB_ROOT_PASSWORD: root
    volumes:
        - db_data:/orientdb/databases
volumes:
 db_data:

То, что я хочу сделать, это указать точку / orientdb / database расположения реплики в новый каталог для каждого нового экземпляра, что-то вроде этого

      services:
 orient-db:
    image: orientdb:3.0.1
    entrypoint: /orientdb/bin/server.sh -Ddistributed=true
    environment:
        ORIENTDB_ROOT_PASSWORD: root
    volumes:
        - db_data/${instance_number}:/orientdb/databases
volumes:
 db_data:

но он не создает новую папку для каждой реплики, когда я делаю

docker-compose up --scale orient-db=3 orient-db

1 Ответ

0 голосов
/ 07 марта 2019

Я не думаю, что вы хотите сделать так, как вы хотите достичь, возможно.Вместо этого я бы определил несколько сервисов на основе образа orientdb.

services:
  orient-db-1:
    image: orientdb:3.0.1
    entrypoint: /orientdb/bin/server.sh -Ddistributed=true
    environment:
      ORIENTDB_ROOT_PASSWORD: root
    volumes:
      - /data/orient_db/1/=/orientdb/databases

  orient-db-2:
    image: orientdb:3.0.1
    entrypoint: /orientdb/bin/server.sh -Ddistributed=true
    environment:
      ORIENTDB_ROOT_PASSWORD: root
    volumes:
      - /data/orient_db/2/=/orientdb/databases

  orient-db-3:
    image: orientdb:3.0.1
    entrypoint: /orientdb/bin/server.sh -Ddistributed=true
    environment:
      ORIENTDB_ROOT_PASSWORD: root
    volumes:
      - /data/orient_db/3/=/orientdb/databases

Если вы хотите масштабировать, то я бы порекомендовал вам использовать распределенную систему, в которую orientdb входит https://orientdb.com/docs/2.1.x/Distributed-Architecture.html, для которой я бы такжедобавить оркестраторDocker Swarm довольно прост.Я бы начал с этого.

...