Создание докера в Azure: Не удается подключиться к базе данных

0

Вопрос

Я пытаюсь заставить сервер SteVe OCPP работать в экземпляре контейнера Azure. Но веб-приложение не будет подключаться к базе данных при запуске docker-compose up в контексте ACI Azure. Локально он работает просто отлично.

Вот файл docker compose:

version: "3.0"

volumes:
  db-data:
    external: false

services:
  db:
    image: mariadb:10.4
    ports:
      - 3306:3306
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
      MYSQL_DATABASE: stevedb
      MYSQL_USER: steve
      MYSQL_PASSWORD: changeme
  web:
    image: rainmakers/steve:latest
    links:
      - "db:mariadb"
    ports:
      - 8180:8180
      - 8443:8443
    depends_on:
      - db

Это единственное, что я получаю в журналах веб-служб:

2021/11/23 13:20:57 Waiting for: tcp://mariadb:3306
2021/11/23 13:20:57 Problem with dial: dial tcp: lookup mariadb on 168.63.129.16:53: no such host. Sleeping 1s
2021/11/23 13:20:58 Problem with dial: dial tcp: lookup mariadb on 168.63.129.16:53: no such host. Sleeping 1s
2021/11/23 13:20:59 Problem with dial: dial tcp: lookup mariadb on 168.63.129.16:53: no such host. Sleeping 1s
2021/11/23 13:21:00 Problem with dial: dial tcp: lookup mariadb on 168.63.129.16:53: no such host. Sleeping 1s
2021/11/23 13:21:01 Problem with dial: dial tcp: lookup mariadb on 168.63.129.16:53: no such host. Sleeping 1s
2021/11/23 13:21:02 Problem with dial: dial tcp: lookup mariadb on 168.63.129.16:53: no such host. Sleeping 1s
2021/11/23 13:21:03 Problem with dial: dial tcp: lookup mariadb on 168.63.129.16:53: no such host. Sleeping 1s

Это продолжается в течение минуты, прежде чем служба завершится.

Есть идеи, как действовать дальше?

1

Лучший ответ

1

Я думаю, тебе следует связаться с http://db:3306 вместо mariadb:3306.

По умолчанию Docker Compose версия 3 использует имя службы в качестве имени хоста сети между контейнерами.

2021-11-23 14:57:43

Похоже, это сработало...
Oystein

поскольку по умолчанию docker-compose 3 использует имя службы в вашем docker-compose.yml в качестве имени хоста см. Статью об этом: medium.com/@datails/...
Robert-Jan Kuyper

Если это сработает, можете ли вы отметить его как ответ
Robert-Jan Kuyper

В итоге я переименовал службу в mariadb вместо того, чтобы менять все строки подключения. Это было проще исправить. Но спасибо за помощь!
Oystein

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................