sql >> Databasteknik >  >> NoSQL >> MongoDB

docker-compose java-applikationsanslutning till mongodb

I juli 2019, officiell hamnardokumentation:

Källa:https://docs.docker.com/compose/compose-file/ #länkar

Lösning #1:miljöfil före start

I grund och botten centraliserar vi alla konfigurationer i en fil med miljövariabler och kör det innan docker-compose up

Följande tillvägagångssätt hjälpte mig i dessa scenarier:

  • Din docker-compose.yml har flera behållare med komplexa beroenden mellan dem
  • Vissa av dina tjänster i din docker-compose måste anslutas till en annan process på samma dator. Denna process kan vara en dockningsbehållare eller inte.
  • Du måste dela variabler mellan flera docker-compose-filer som värd, lösenord, etc.

Steg

1.- Skapa en fil för att centralisera konfigurationer

Den här filen kan heta:/env/company_environments med förlängning eller inte.

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

2.- Använd env-variablerna i din docker-compose.yml

behållare A

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

behållare B

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

3.- Starta dina containrar

Lägg bara till källkod innan docker-compose-kommandon:

source /env/company_environments
docker-compose up -d

Lösning #2:host.docker.internal

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

Använd i princip en funktion i docker där host.docker.internal kan användas som ip för servern där din docker-compose har startat flera behållare



  1. MongoDB - hjälp med en PHP-fråga

  2. Läs BSON (mongoDB) till POJO med GSON och TypeAdapter

  3. Node.js - Skapa relationer med Mongoose

  4. Serverar dynamiska webbadresser med express och mongodb