MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

docker-compose връзка на java приложение към mongodb

През юли 2019 г., официална докер документация:

Източник:https://docs.docker.com/compose/compose-file/ #връзки

Решение №1:файл на средата преди стартиране

По принцип ние централизираме всички конфигурации във файл с променливи на средата и го изпълнете преди docker-compose up

Следният подход ми помогна в тези сценарии:

  • Вашият docker-compose.yml има няколко контейнера със сложни зависимости между тях
  • Някои от вашите услуги във вашия docker-compose трябва да се свържат с друг процес в същата машина. Този процес може да бъде докер контейнер или не.
  • Трябва да споделяте променливи между няколко докер композирани файла като хост, пароли и т.н.

Стъпки

1.- Създайте един файл за централизиране на конфигурациите

Този файл може да се наименува:/env/company_environments с разширение или не.

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

2.- Използвайте променливите env във вашия docker-compose.yml

контейнер А

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

контейнер B

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

3.- Стартирайте вашите контейнери

Просто добавете източник преди командите за съставяне на docker:

source /env/company_environments
docker-compose up -d

Решение №2:host.docker.internal

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

По принцип използвайте функция на docker, в която host.docker.internal може да се използва като ip на сървъра, в който вашият docker-compose е стартирал няколко контейнера



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Групирайте и пребройте в MongoDB

  2. Защо многостойностното поле е лоша идея в релационните бази данни

  3. Опция за автоматично повторно свързване на Mongoose

  4. Как да се свържа с mongodb с node.js (и удостоверявам автентичността си)?

  5. Като се има предвид списък с идентификатори, кой е най-добрият начин да направите заявка кои идентификатори не съществуват в колекцията?