Решение известных проблем
На сервере закончилось место
Проявлять себя может по-разному, но, скорее всего, худшим образом — ни один из сервисов не доступен.
Самое быстрое, что может помочь — это коннект по SSH к сервису и выполнение команд:
cd /var/www/infra && sudo make clean— корректная очистка зависимых файлов встроенных сервисов;docker system prune -a -f— очистка неиспользуемых образов Docker;sudo journalctl --vacuum-time=3d— очистка системного журнала.
Эти команды должны быть использованы в crontab, потому их можно посмотреть по команде crontab -l.
Используемое место можно посмотреть с помощью du -ah, по конкретным каталогам, например,
с помощью du -sh /var/www/infra/graphite/data/.
О растущих в размерах каталогах можно судить по .gitignore, в котором игнорируются каталоги:
graphite/dataloki/datapromtail/positionsportainer/datapostgres/data(если используется встроенный PostgreSQL)registry/dataregistry/auth
По этим каталогам есть вспомогательная команда make disk-usage.
Также, могут расти логи /var/log/traefik* для которых настроен logrotate (через make logrotate).
Один из внешних сервисов не запускается
Чаще всего это связано с отсутствующим параметром в ./configs/.env (а иногда и с его отсутствием).
Логи сервиса можно посмотреть с помощью ./logs.sh gateway-server.
Также, логи как сервиса, так и задачи его запуска доступны в Portainer.
После перезапуска внешнего сервиса не работают запросы к API
Возможно, поможет также перезапуск сервиса gateway-server.
Почему это может происходить — в workspace-frontend используется конфигурация nginx, которая запросы к /api/*
перенаправляет к http://gateway-server:8000.
Здесь примечательно то, что gateway-server — это внутренний псевдоним адреса сервиса в сервисной сети Docker-а.
И такой адрес в некоторых случаях перезапуска контейнеров может перестать резолвиться.
Traefik выдаёт ошибкуpermissions 777 for acme.json are too open, please use 600
Если запуск происходит в Windows WSL, то можно попробовать поменять конфигурацию WSL:
[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=11"
Это должно позволить менять права на файлы.