Регистрация приложений с несколькими docker репликами (контейнерами) - PullRequest
0 голосов
/ 30 апреля 2020

У нас есть основное приложение. NET, которое записывает свои выходные данные в файлы, например. portal-20200430-000.log. В среде DEV все хорошо:)

Приложение разворачивается через службу docker, которая инициализирует 3 реплики - 3 docker контейнера. Мы хотим, чтобы все журналы из всех контейнеров (реплик) находились в одном месте, поэтому мы сопоставили файловые системы между хост-машиной и контейнерами через тома .

docker -compose.yml:

version: "3.7"
services:
  web:
    image: portal:0.0.1
    --- snipped content ---
    volumes:
      - "/home/portal/Dev/Logs:/app/Logs"
    deploy:
      replicas: 3

Каждый контейнер (реплика) выводит свои собственные журналы в /app/Logs/portal-20200430-000.log внутри контейнера, но эта папка сопоставляется с /home/portal/Dev/Logs в гостья. Таким образом, все 3 контейнера записывают в один файл на хосте, что не очень хорошо - некоторые журналы теряются, эти 3 контейнера перезаписывают журналы друг друга и т. Д. c.

Я полагаю, возможные решения являются:

  • изменить имя файла журнала каждого контейнера (но ведение журнала осуществляется с помощью внешнего Карамболо logger , который имеет имена файлов, жестко закодированные в настройках приложения. json. Эти настройки являются общими ко всем репликам контейнера)
  • дать указание каждой реплике docker сопоставить другой том - возможно ли это?

Есть ли другое решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...