-
Notifications
You must be signed in to change notification settings - Fork 2
Run with Docker Compose
Docker Compose описывает контейнер в одном YAML-файле. Это рекомендуемый способ для постоянной работы: всю конфигурацию видно в одном месте, а изменить параметры можно простым редактированием файла без длинных команд.
Поддерживаются оба варианта:
-
Docker Compose v2 — команда
docker compose(через пробел), современный плагин. Рекомендуется. -
Классический Docker Compose — команда
docker-compose(через дефис), устаревшая утилита.
Создайте папку для проекта и в ней файл docker-compose.yml:
services:
torrentmonitor:
container_name: torrentmonitor
image: alfonder/torrentmonitor:latest
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./torrents:/data/htdocs/torrents
- ./db:/data/htdocs/db
- /etc/localtime:/etc/localtime:ro
environment:
- PHP_TIMEZONE=Europe/Moscow
- CRON_TIMEOUT=0 * * * *В этом примере данные хранятся в подпапках ./torrents и ./db рядом с файлом compose.
docker compose up -dИнтерфейс будет доступен на http://localhost:8080.
docker compose ps # статус контейнера
docker compose logs -f # логи в реальном времени
docker compose restart # перезапуск
docker compose stop # остановить (без удаления)
docker compose start # запустить снова
docker compose down # остановить и удалить контейнер (данные в томах/папках сохранятся)Чтобы не хранить значения прямо в docker-compose.yml, вынесите их в файл .env рядом с ним.
Compose автоматически подставит переменные ${...}.
.env:
# Тег образа
TM_TAG=latest
# Имя контейнера
SERVICENAME=torrentmonitor
# Порт веб-интерфейса на хосте
LISTEN_PORT=8080
# Папка для постоянных данных контейнера
DATA_DIR=/opt/torrentmonitor
# Расписание запуска в формате cron
SCHEDULE=0 * * * *
# Часовой пояс
TIMEZONE=Europe/Moscowdocker-compose.yml:
services:
torrentmonitor:
container_name: ${SERVICENAME}
image: alfonder/torrentmonitor:${TM_TAG}
restart: unless-stopped
ports:
- ${LISTEN_PORT}:80
volumes:
- ${DATA_DIR}/torrents:/data/htdocs/torrents
- ${DATA_DIR}/db:/data/htdocs/db
- ${DATA_DIR}/logs:/data/htdocs/logs
- /etc/localtime:/etc/localtime:ro
environment:
- PHP_TIMEZONE=${TIMEZONE}
- CRON_TIMEOUT=${SCHEDULE}Теперь, чтобы поменять порт или расписание, достаточно отредактировать .env и выполнить
docker compose up -d — Compose пересоздаст контейнер с новыми параметрами.
📄 Это та же схема, что лежит в репозитории в файлах
docker-compose.ymlи.env.
docker compose pull # скачать свежий образ
docker compose up -d # пересоздать контейнер на новом образе
docker image prune -f # (опционально) удалить старые образыПодробнее — на странице Обновление и обслуживание.
Если у вас старая утилита docker-compose (через дефис), используйте тот же docker-compose.yml,
просто замените команду:
docker-compose up -d
docker-compose down
⚠️ В классическомdocker-composeиногда требуется первой строкой указать версию формата, напримерversion: '3'. В Compose v2 строкаversionне нужна и считается устаревшей.
Установка и запуск
- Установка Docker
- Запуск на NAS (Synology, QNAP)
- Быстрый старт
- Запуск через docker run
- Запуск через Docker Compose
Конфигурация
Сценарии
Эксплуатация
Приложение