ecos-mongo-app

Назначение:

Образ для развертывания контейнера с mongodb с преконфигурированными настройками датасорсов для микросервисов

Базовые образы:

  • mongo_4 - Официальный образ mongodb v 4.0.x

Шаблон сервиса docker-compose:

mongo-app:
    logging:
      options:
        max-size: "10m"
        max-file: "5"
    container_name: mongo-app
    hostname: mongo-app
    restart: unless-stopped
    stop_grace_period: 1m
    image: nexus.citeck.ru/mongo:4.0
    env_file:
     - ./env_dir/mongo-app.env
    expose:
      - 27017/tcp
    volumes:
      - /opt/mongo-app:/data/db/
    networks:
      - app_network

Используемые переменные:

  • MONGO_INITDB_ROOT_USERNAME - логин пользователя, который будет создан в admin db с root привилегиями

  • MONGO_INITDB_ROOT_PASSWORD - пароль привилегированного пользователя

  • MONGO_INITDB_DATABASE - определение базы данных, используемой в скриптах развертывания в /docker-entrypoint-initdb.d/*.js/sh. (1)

  • ECOS_HISTORY_APP_DATASOURCE_DATABASE - db микросервиса истории (ecos-history)

  • ECOS_HISTORY_APP_DATASOURCE_USERNAME - логин для мкр истории, роль dbOwner (ecos-history)

  • ECOS_HISTORY_APP_DATASOURCE_PASSWORD - пароль для мкр истории (ecos-history-password)

  • ECOS_PROCESS_APP_DATASOURCE_DATABASE - db микросервиса ecos-process (ecos-process)

  • ECOS_PROCESS_APP_DATASOURCE_USERNAME **- логин для мкр ecos-process, роль dbOwner **(ecos-process)

  • ECOS_PROCESS_APP_DATASOURCE_PASSWORD - пароль для мкр ecos-process (ecos-process-password)

    • This variable allows you to specify the name of a database to be used for creation scripts in /docker-entrypoint-initdb.d/.js (see Initializing a fresh instance below). MongoDB is fundamentally designed for «create on first use», so if you do not insert data with your JavaScript files, then no database is created.

Типовой вывод успешного развертывания в лог контейнера:

MongoDB shell version v4.0.18
connecting to: mongodb://127.0.0.1:27017/test?gssapiServiceName=mongodb
2020-05-06T07:44:13.565+0000 I NETWORK  [listener] connection accepted from 127.0.0.1:42378 #3 (1 connection now open)
2020-05-06T07:44:13.565+0000 I NETWORK  [conn3] received client metadata from 127.0.0.1:42378 conn3: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.0.18" }, os: { type: "Linux", name: "Ubuntu", architecture: "x86_64", version: "16.04" } }
Implicit session: session { "id" : UUID("3cb7f158-dfaa-4ffd-896f-b36052828f19") }
MongoDB server version: 4.0.18
2020-05-06T07:44:13.593+0000 I ACCESS   [conn3] Successfully authenticated as principal root_user on admin from client 127.0.0.1:42378
1
ecos-process
Successfully added user: {
        "user" : "ecos-process",
        "roles" : [
                {
                        "role" : "dbOwner",
                        "db" : "ecos-process"
                }
        ]
}
ecos-history
Successfully added user: {
        "user" : "ecos-history",
        "roles" : [
                {
                        "role" : "dbOwner",
                        "db" : "ecos-history"
                }
        ]
}
bye