---
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).
