Files
iptv-docker/compose.yml
Anthony Axenov b5ed25d542 Доработка docker-окружения
- перенос конфигов для web в его папку
- префикс m3u-su- возвращён к на iptv-
- уточнения по сборке docs и мелочи по остальным
2026-01-03 01:14:19 +08:00

95 lines
2.4 KiB
YAML

name: iptv
networks:
iptv-network:
driver: bridge
x-common-attributes: &common-attributes
restart: unless-stopped
env_file:
- .env
extra_hosts:
- host.docker.internal:host-gateway
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
- iptv-network
services:
nginx:
<<: *common-attributes
container_name: iptv-nginx
image: nginx:latest
pull_policy: always
volumes:
- ./docker/nginx/vhost.conf:/etc/nginx/conf.d/default.conf:ro
- ./log/nginx:/var/log/nginx:rw
- ./web:/var/www:ro
ports:
- 3000:80
depends_on:
- web
keydb:
<<: *common-attributes
container_name: iptv-keydb
image: eqalpha/keydb:latest
pull_policy: always
user: ${KEYDB_UID}:${KEYDB_GID}
entrypoint: ["sh", "/entrypoint.sh"]
volumes:
- ./docker/keydb/entrypoint.sh:/entrypoint.sh
- ./docker/keydb/keydb.conf:/etc/keydb/keydb.conf
- ./docker/keydb/data/:/data:rw
ports:
- ${KEYDB_PORT:-6379}:6379
web:
<<: *common-attributes
container_name: iptv-web
build:
context: ./web
dockerfile: Dockerfile
target: iptv-web-${IPTV_ENV}
environment:
- PHP_IDE_CONFIG=serverName=iptv.local
volumes:
- ./web/docker/${IPTV_ENV}/www.conf:/usr/local/etc/php-fpm.d/www.conf:ro
- ./web/docker/${IPTV_ENV}/php.ini:/usr/local/etc/php/conf.d/php.ini:ro
- ./playlists/playlists.ini:/var/www/config/playlists.ini
- ./log/php:/var/log/php:rw
- ./web:/var/www:rw
depends_on:
- keydb
checker:
<<: *common-attributes
container_name: iptv-checker
image: git.axenov.dev/iptv/iptvc:latest
build:
context: ./iptvc
dockerfile: Dockerfile
command: ["check", "--repeat", "0", "--every", "${CHECKER_WAIT:-60}"]
environment:
- CACHE_ENABLED=true
- CACHE_HOST=iptv-keydb
- CACHE_PORT=${KEYDB_PORT:-6379}
- CACHE_USERNAME=${KEYDB_USERNAME}
- CACHE_PASSWORD=${KEYDB_PASSWORD}
- CACHE_DB=${CHECKER_DB:-0}
- CACHE_TTL=${CHECKER_TTL:-1800}
volumes:
- ./playlists/playlists.ini:/app/playlists.ini
- ./playlists/channels.json:/app/channels.json
docs:
<<: *common-attributes
container_name: iptv-docs
image: git.axenov.dev/iptv/iptv-docs:latest
build:
context: ./docs
dockerfile: Dockerfile
ports:
- 3001:80