sql >> Databáze >  >> NoSQL >> MongoDB

připojení java aplikace docker-compose k mongodb

V červenci 2019 oficiální dokumentace dockeru:

Zdroj:https://docs.docker.com/compose/compose-file/ #odkazy

Řešení č. 1:soubor prostředí před spuštěním

V podstatě všechny konfigurace centralizujeme do souboru s proměnnými prostředí a spusťte jej před docker-compose up

V těchto scénářích mi pomohl následující přístup:

  • Váš docker-compose.yml má několik kontejnerů se složitými závislostmi mezi nimi
  • Některé z vašich služeb ve vašem docker-compose se potřebují připojit k jinému procesu na stejném počítači. Tento proces může být kontejner dockeru nebo ne.
  • Musíte sdílet proměnné mezi několika soubory vytvořenými pomocí dockeru, jako je hostitel, hesla atd.

Kroky

1.- Vytvořte jeden soubor pro centralizaci konfigurací

Tento soubor může mít název:/env/company_environments s příponou nebo bez.

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

2.- Použijte proměnné env v docker-compose.yml

kontejner A

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

kontejner B

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

3.- Spusťte své kontejnery

Stačí přidat zdroj před příkazy docker-compose:

source /env/company_environments
docker-compose up -d

Řešení č. 2:host.docker.internal

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

V zásadě použijte funkci dockeru, ve které host.docker.internal lze použít jako ip serveru, na kterém váš docker-compose spustil několik kontejnerů



  1. Jak vypsat všechny databáze MongoDB v Node.js?

  2. Automatické doplňování filtrováno pomocí mongodb

  3. Zamyká mongodump databázi?

  4. TypeError;Article.find() není funkce v Sails.js