Для удобства и безопасности переменные, такие как домен и пароль, можно вынести в отдельный файл. Это позволит легко управлять конфигурацией и предотвращает хранение данных непосредственно в docker-compose.yml
.
mkdir -p ./data/grafana && cd $_
.env
в папке grafana
и добавляем в него следующие переменные:YOUR_DOMAIN=grafana.example.com
ADMIN_PASSWORD=yourpassword
⚠️ Важно: Замените
grafana.example.com
на ваш домен иyourpassword
на желаемый пароль для администратора Grafana.
docker-compose.yml
и добавляем содержимое:version: '3.3'
services:
grafana:
container_name: grafana
environment:
- ROOT_URL=https://${YOUR_DOMAIN}
- GF_SECURITY_ADMIN_USER=Admin
- GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD}
- GF_USERS_ALLOW_SIGN_UP=false
network_mode: traefik_network
restart: always
ports:
- 3000:3000
volumes:
- grafana-data:/var/lib/grafana:rw
image: grafana/grafana:8.0.0
volumes:
grafana-data:
driver: local
Примечание: Docker автоматически подставит значения из
.env
файла в конфигурациюdocker-compose.yml
.
docker-compose.yml
и не забудьте закомментировать секцию ports
: labels:
- traefik.enable=true
- traefik.http.middlewares.grafana_https.redirectscheme.scheme=https
- traefik.http.routers.grafana.entrypoints=web
- traefik.http.routers.grafana.middlewares=grafana_https@docker
- traefik.http.routers.grafana.rule=Host(`${YOUR_DOMAIN}`)
- traefik.http.routers.grafana_https.entrypoints=websecure
- traefik.http.routers.grafana_https.rule=Host(`${YOUR_DOMAIN}`)
- traefik.http.routers.grafana_https.tls=true
- traefik.http.services.grafana.loadbalancer.server.port=3000
- traefik.http.routers.grafana_https.tls.certresolver=le
Запустите контейнер с командой:
docker-compose up -d
После запуска Grafana доступна по адресу https://grafana.example.com
.