Разоблачить файл журнала вне контейнера Docker - PullRequest
0 голосов
/ 04 мая 2019

У меня есть приложение .net core, которое Serilog используется в качестве каркаса журнала. Прямо сейчас Serilog входит в файл. Я хочу открыть этот файл вне контейнера и иметь простой доступ, как и к другим файлам.

Я пробовал с томом и привязкой к объему согласно ссылке docker-compose: https://docs.docker.com/compose/compose-file/#volume-configuration-reference

Кроме того, каталог от хоста является общим. Но файл журнала появляется в контейнере в определенном каталоге, но каталог на хосте все еще пуст.

Я могу вручную скопировать этот файл с помощью команды DOCKER COPY. Есть ли какой-нибудь подход к синхронизации этого файла в моем свободном каталоге на хосте?

Или я должен применить какой-то дополнительный подход, например, ELK для достижения моей цели?

Это мой файл docker-compose. Часть внешнего интерфейса теперь комментируется из-за тестов.

version: '3.7'

services:
  backend:
    build: './backend'
    ports:
      - "80:80"
    networks:
      - gateway
    environment:
      - Logger:FilePath=//logs//logs.txt
      - Database:Name=Data Source = ./database.db
    volumes:
      - type: bind
        source: /Users/grzegorz/Desktop/logs
        target: /app/logs/
  #frontend:
  #  build: './frontend'
  #  depends_on:
  #    - backend
  #  ports:
  #    - "4200:4200"
  #  networks:
  #    - gateway

networks:
  gateway: {}

Когда я открываю терминал и захожу в каталог app / logs, я вижу файл logs.txt с текущими журналами приложений.

1 Ответ

1 голос
/ 05 мая 2019

Вы монтируете / app / logs, но переменная env указывает, что журналы записываются в / logs, а не /app/logs.

Измените один или другой путь и посмотрите, сохраняется ли проблема.

В целом ваш подход правильный.Но для производственного использования, особенно в кластерных средах, лучше использовать serilog, splunk, понимание приложений или другой сборщик журналов на основе служб, так как файлы могут быть трудно поддерживать при масштабировании ваших контейнеров.

...