Tworzenie nudziarz z niego, co w Azure: Nie można połączyć się z bazą danych

0

Pytanie

Próbuję zmusić serwer SteVe OCPP pracować w wystąpieniu kontenera Azure. Ale web app nie będzie łączył się do bazy danych podczas uruchamiania docker-compose up w kontekście ACI Azure. Lokalnie działa po prostu świetnie.

Oto plik 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

To jedyne, co dostaję w czasopismach usług sieci web:

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

Trwa to w ciągu minuty, zanim usługa zostanie zakończone.

Jakieś pomysły, jak postępować dalej?

1

Najlepsza odpowiedź

1

Myślę, że powinieneś skontaktować się z http://db:3306 zamiast mariadb:3306.

Domyślnie Docker Compose wersja 3, używając nazwę usługi jako nazwy hosta sieci między kontenerami.

2021-11-23 14:57:43

Wygląda na to, że to się sprawdza...
Oystein

ponieważ domyślnie docker-compose 3, używając nazwę usługi w swoim docker-compose.yml jako nazwę hosta można znaleźć Artykuł o tym: medium.com/@datails/...
Robert-Jan Kuyper

Jeśli to się uda, czy możesz oznaczyć go jako odpowiedź
Robert-Jan Kuyper

W końcu zmienił nazwę usługi w mariadb zamiast wymieniać wszystkie linie połączenia. To było łatwiejsze do rozwiązania. Ale dziękuję za pomoc!
Oystein

W innych językach

Ta strona jest w innych językach

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