69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
---
|
||
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).
|