sql >> Database >  >> NoSQL >> MongoDB

docker-compose java-toepassingsverbinding met mongodb

In juli 2019, officiële documentatie voor havenarbeiders:

Bron:https://docs.docker.com/compose/compose-file/ #links

Oplossing #1:omgevingsbestand voor starten

In principe centraliseren we alle configuraties in een bestand met omgevingsvariabelen en voer het uit voordat docker-compose up

De volgende aanpak heeft me geholpen in deze scenario's:

  • Uw docker-compose.yml heeft verschillende containers met complexe afhankelijkheden ertussen
  • Sommige van uw services in uw docker-compose moeten verbinding maken met een ander proces op dezelfde machine. Dit proces kan een docker-container zijn of niet.
  • U moet variabelen delen tussen verschillende door docker samengestelde bestanden zoals host, wachtwoorden, enz.

Stappen

1.- Maak één bestand om configuraties te centraliseren

Dit bestand kan de naam hebben:/env/company_environments met extensie of niet.

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

2.- Gebruik de env-variabelen in uw docker-compose.yml

container A

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

container B

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

3.- Start uw containers op

Voeg gewoon de bron toe vóór de docker-compose-commando's:

source /env/company_environments
docker-compose up -d

Oplossing #2:host.docker.internal

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

Gebruik in principe een functie van docker waarin host.docker.internal kan worden gebruikt als het IP-adres van de server waarop uw docker-compose verschillende containers heeft gestart



  1. MongoDB Norm-query geneste objecten

  2. Mongodb retourneert meerdere subarrayresultaten en sluit andere geretourneerde resultaten uit

  3. Hoe los ik op:'MongoError:$waar is niet toegestaan ​​in deze atlaslaag'?

  4. mongodb lees-/schrijfprestaties en mongo-hosting in de cloud