--- title: Docker-образ icon: simple/docker tags: ["iptvc", "docker"] --- # Построение Docker-образа ## Сборка Образ собирается из [Dockerfile](https://git.axenov.dev/IPTV/iptvc/src/branch/master/Dockerfile) на базе `alpine:3.22.5`. Бинарный файл должен быть предварительно собран через `make linux` — Dockerfile берёт уже готовый бинарь из `bin/linux_${TARGETARCH}/iptvc`. ```bash # Сборка бинарного файла и образа make image # Сборка с указанием архитектуры make image GOARCH=arm64 # Сборка с указанием тега make image IMAGE_TAG=v1.1.3 ``` Целевая архитектура задаётся через `GOARCH`: ```bash make linux GOARCH=arm64 make image GOARCH=arm64 ``` Для публикации multi-arch манифеста в registry: ```bash make image-all ``` ## Запуск ```bash # Проверка плейлистов docker run --rm \ -v ./playlists.ini:/app/playlists.ini \ -v ./channels.json:/app/channels.json \ git.axenov.dev/iptv/iptvc:latest check -i playlists.ini --repeat 0 --playlists-all-cooldown 60 # Веб-сервер с фоновой проверкой docker run --rm -p 8800:8800 \ -v ./playlists.ini:/app/playlists.ini \ -v ./channels.json:/app/channels.json \ git.axenov.dev/iptv/iptvc:latest serve -i playlists.ini -p 8800 --check ``` ## Использование в compose В `compose.yml` сервиса `iptvc` образ собирается автоматически: ```yaml iptvc: image: git.axenov.dev/iptv/iptvc:latest build: context: ./iptvc dockerfile: Dockerfile command: ["serve", "--check", "--repeat", "0"] ``` Подробнее о полном окружении — в разделе [Развёртывание](../site/deploy.md).