Изменение стандартного порта агрегатора memSQL при запуске memSQL через докер - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь использовать MemSQL через контейнер Docker.
Ниже моя запись Docker-compose.yml для док-станции memsql

memsql:
image: memsql/quickstart
volumes:
  - "./jenkins/jenkins_memsql_schema.sql:/schema.sql"
ports:
  - "3307:3306"
  - "9000:9000"
hostname: memsql
container_name: memsql

Порт по умолчанию, на котором работает memsql, - 3306. Я хотел бы изменить этот порт по умолчанию.
Когда я поднимаю этот контейнер и пытаюсь изменить порт изнутри контейнера.
Я использую следующую команду:

memsql-ops memsql-update-config --key=port --value=3307

Я получаю следующую ошибку:

You cannot change the port variable for an existing MemSQL node.

Итак:

  1. Кажется, вы не можете изменить порт после запуска memSQL, так как вы изменили его раньше?
  2. Как это можно установить с помощью настройки docker-compose?

Ответы [ 2 ]

1 голос
/ 18 марта 2019

В контексте MemSQL, работающего в Docker, самый простой способ - оставить MemSQL работающим на порте 3306 в контейнере Docker, но иметь другую карту портов хоста для этого порта.

В не-DockerПри установке вы можете выбрать порт для установки MemSQL во время установки (параметр --port на https://docs.memsql.com/memsql-tools-reference/latest/create-node/). Также можно изменить порт узла, удалив и повторно добавив его с нужным портом - memsql-update-config не может быть использован для этого.

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

1.Кажется, вы не можете изменить порт после запуска memSQL, так как вы измените его раньше?

Я бы посоветовал вам начать с здесь , что означает, что вы можете начать сизменив сценарий установки с именем setup.sh, а затем изменив Dockerfile, чтобы он отображал нужный порт вместо 3306, что позволит вам иметь правильные порты при запуске контейнера

2.Как это можно установить с помощью настройки docker-compose?

Если все, что нужно для изменения, это запустить эту команду или, возможно, дополнительные простые шаги:

memsql-ops memsql-update-config --key=port --value=3307

Вы можетепередайте порт как переменную окружения через docker-compose.yml с помощью ключа environment и добавьте приведенную выше команду в скрипт с именем memsql-entrypoint.sh, чтобы он был примерно таким:

if [ ! -z "$CUSTOM_PORT" ]; then
    memsql-ops memsql-update-config --key=port --value=$CUSTOM_PORT
fi

В обоих случаях вам понадобится настроенный файл Docker и используйте memsql/quickstart в качестве базового образа.

...