MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

docker-compose połączenie aplikacji java z mongodb

W lipcu 2019 r. oficjalna dokumentacja dokera:

Źródło:https://docs.docker.com/compose/compose-file/ #linki

Rozwiązanie nr 1:plik środowiska przed startem

Zasadniczo centralizujemy wszystkie konfiguracje w pliku ze zmiennymi środowiskowymi i wykonaj go przed docker-compose up

Następujące podejście pomogło mi w tych scenariuszach:

  • Twój docker-compose.yml ma kilka kontenerów ze złożonymi zależnościami między nimi
  • Niektóre z Twoich usług w docker-compose muszą łączyć się z innym procesem na tym samym komputerze. Ten proces może być kontenerem dockera lub nie.
  • Musisz udostępniać zmienne między kilkoma plikami docker-compose, takimi jak host, hasła itp.

Kroki

1.- Utwórz jeden plik, aby scentralizować konfiguracje

Ten plik może mieć nazwę:/env/company_environments z rozszerzeniem lub nie.

export MACHINE_HOST=$(hostname -I | awk '{print $1}')
export GLOBAL_LOG_PATH=/my/org/log
export MONGO_PASSWORD=mypass
export MY_TOKEN=123456

2.- Użyj zmiennych env w swoim docker-compose.yml

pojemnik A

app_who_needs_mongo:
  environment:
    - MONGO_HOST=$MACHINE_HOST
    - MONGO_PASSWORD=$MONGO_PASSWORD
    - TOKEN=$MY_TOKEN
    - LOG_PATH=$GLOBAL_LOG_PATH/app1

kontener B

app_who_needs_another_db_in_same_host:
  environment:
    - POSTGRESS_HOST=$MACHINE_HOST
    - LOG_PATH=$GLOBAL_LOG_PATH/app1

3.- Uruchom swoje kontenery

Po prostu dodaj źródło przed poleceniami docker-compose:

source /env/company_environments
docker-compose up -d

Rozwiązanie nr 2:host.docker.internal

https://stackoverflow.com/a/63207679/3957754

Zasadniczo użyj funkcji docker, w której host.docker.internal może być użyty jako ip serwera, na którym twój docker-compose uruchomił kilka kontenerów



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wdrażanie i konserwacja MongoDB przy użyciu Ansible

  2. Wykonywanie Mongo jak Query (JSON) przez Javę

  3. Błąd podczas ładowania plików konfiguracyjnych YAML w Rails

  4. Mongodb TTL wygasa dokumenty wcześniej

  5. Programowanie baz danych w Pythonie z MongoDB dla początkujących