Я пытаюсь запустить докеризованную среду на машине с Ubuntu, содержащей бэкэнд memsql + java, используя docker -compose. Мой docker составной файл выглядит следующим образом:
version: "3.7"
services:
memsql:
image: memsql/quickstart
container_name: memsql
environment:
MEMSQL_ROOT_PASSWORD: passW
MEMSQL_DATABASE: db
ports:
- 3306:3306
- 9000:9000
volumes:
- ./memsql:/var/lib/memsql
backend:
build:
context: .
dockerfile: java-dockerfile
image: backend:1
container_name: backend
expose:
- "8080"
depends_on:
- memsql
volumes:
- ./logs:/external
command: ["java", "-jar", "server.jar", "-Xms1024m", " -Xmx2048m", "> /external/server.log"]
Когда я пытаюсь запустить его, сервер не может подключиться к моему контейнеру mem sql - он выдает ошибку соединения отказано.
Сам контейнер mem sql работает, я могу получить к нему доступ (docker exec -it memsql /bin/bash
), проверить журналы (/memsql/master/tracelogs# cat memsql.log
), войти в него (mysql -u root -h 127.0.0.1 -P 3306 --prompt="memsql> "
). Действительно, он не создает указанную БД, и когда я вхожу в систему, он не запрашивает указанный пароль.
Я пробовал также различные сетевые c решения, такие как использование определенной сети или настройка сетевой режим для «хоста», но ни один из них не работал. Я подозреваю, что это проблема, связанная с mem sql (да, я знаю, что изображение, которое я использую, помечено как устаревшее), но не может показаться, что может быть. В логах единственная ошибка, которую я нашел:
ERROR: Thread 115082: Fn: Waiting for node to catch up with cluster state before starting replication management.
Любая помощь с благодарностью!