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.
Известные проблемы:
2020-05-06T07:44:14.752+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-05-06T07:44:14.752+0000 I STORAGE [initandlisten] ** See `mongo_prodnotes_filesystem <http://dochub.mongodb.org/core/prodnotes-filesystem>`_
Типовой вывод успешного развертывания в лог контейнера:
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