89 lines
2.4 KiB
YAML
89 lines
2.4 KiB
YAML
networks:
|
|
iptv:
|
|
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
|
|
|
|
services:
|
|
|
|
keydb:
|
|
<<: *common-attributes
|
|
container_name: iptv-keydb
|
|
image: eqalpha/keydb:latest
|
|
user: ${KEYDB_UID}:${KEYDB_GID}
|
|
entrypoint: ["sh", "/entrypoint.sh"]
|
|
volumes:
|
|
- ./docker/keydb/keydb.conf:/etc/keydb/keydb.conf
|
|
- ./docker/keydb/entrypoint.sh:/entrypoint.sh
|
|
- ./docker/keydb/data/:/data:rw
|
|
- ./log/keydb:/var/log/keydb/:rw
|
|
ports:
|
|
- ${KEYDB_PORT:-6379}:6379
|
|
|
|
web:
|
|
<<: *common-attributes
|
|
container_name: iptv-web
|
|
build:
|
|
dockerfile: dockerfile.web.${IPTV_ENV}
|
|
environment:
|
|
- PHP_IDE_CONFIG=serverName=iptv.local
|
|
volumes:
|
|
- ./docker/php/${IPTV_ENV}/www.conf:/usr/local/etc/php-fpm.d/www.conf:ro
|
|
- ./docker/php/${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
|
|
build:
|
|
dockerfile: ./dockerfile.checker
|
|
environment:
|
|
- CACHE_ENABLED=true
|
|
# - CACHE_HOST=localhost
|
|
- 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}
|
|
- CHECKER_WAIT=${CHECKER_WAIT:-60}
|
|
- CHECKER_INIFILE=${CHECKER_INIFILE:-/app/playlists.ini}
|
|
- CHECKER_TAGFILE=${CHECKER_TAGFILE:-/app/channels.json}
|
|
volumes:
|
|
- ./docker/checker/entrypoint.sh:/entrypoint.sh
|
|
- ./iptvc/:/app/
|
|
- ./playlists/playlists.ini:${CHECKER_INIFILE:-/app/playlists.ini}
|
|
- ./playlists/channels.json:${CHECKER_TAGFILE:-/app/channels.json}
|
|
depends_on:
|
|
- keydb
|
|
|
|
nginx:
|
|
<<: *common-attributes
|
|
container_name: iptv-nginx
|
|
image: nginx:latest
|
|
volumes:
|
|
- ./docker/nginx/vhost.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./log/nginx:/var/log/nginx:rw
|
|
- ./web:/var/www:ro
|
|
- ./docs/site:/usr/share/nginx/html/doc-files:ro
|
|
ports:
|
|
- 8080:80
|
|
links:
|
|
- web
|
|
depends_on:
|
|
- web
|