OpenVoiceOS / ovos-docker

Open Voice OS container images and docker-compose.yml files for x86_64 and aarch64 CPU architectures.
https://openvoiceos.github.io/ovos-docker/
Apache License 2.0
41 stars 13 forks source link

mount log folder for ease of log management #22

Closed denics closed 1 year ago

denics commented 1 year ago

Mounting the logs folders can make it easier to debug sometimes, or follow what is going on. furthermore, a rotation can be put in place on the docker machine to manage the space

goldyfruit commented 1 year ago

When using Docker, you should not have logs into the containers as they are identical with what is already available in the stdout.

To avoid the log to be created by the service, you should add this to your mycroft.conf:

  "logs": {
    "path": "stdout"
  }

From the README.md:

image

If you need to get all the logs from the containers, you can run docker compose logs:

docker compose -f docker-compose.yml -f docker-compose.skills.yml --env-file .env logs -n -f --tail 200

And the best practice to log containers stdout would be to use a log aggregator such as Filebeat (but that could be a bit over kill, depends of your needs).

denics commented 1 year ago

then probably I did something wrong as in my MBP arm64 the stdout does not work with an error message :(

xxx@xxx ~/Git/ovos/ovos-docker/compose (dev*) $ docker exec -it ovos_cli ovos-cli-client

Traceback (most recent call last):
  File "/home/ovos/.venv/bin/ovos-cli-client", line 33, in <module>
    sys.exit(load_entry_point('ovos-cli-client==0.0.1a1', 'console_scripts', 'ovos-cli-client')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ovos/.venv/lib/python3.11/site-packages/ovos_cli_client/__main__.py", line 63, in main
    for f in os.listdir(log_dir):
             ^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'stdout'
goldyfruit commented 1 year ago

then probably I did something wrong as in my MBP arm64 the stdout does not work with an error message :(

xxx@xxx ~/Git/ovos/ovos-docker/compose (dev*) $ docker exec -it ovos_cli ovos-cli-client

Traceback (most recent call last):
  File "/home/ovos/.venv/bin/ovos-cli-client", line 33, in <module>
    sys.exit(load_entry_point('ovos-cli-client==0.0.1a1', 'console_scripts', 'ovos-cli-client')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ovos/.venv/lib/python3.11/site-packages/ovos_cli_client/__main__.py", line 63, in main
    for f in os.listdir(log_dir):
             ^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'stdout'

Yeah, you are facing this issue https://github.com/OpenVoiceOS/ovos-cli-client/issues/12 which is related to ovos-cli, and ovos-cli is not really maintained anymore.

goldyfruit commented 1 year ago

I just pushed this commit to avoid this error, not pretty but its working.