lbry-docker/spee.ch/advanced-docker-compose.yml

154 lines
3.9 KiB
YAML

## YMMV and this is not supported but should be a few steps away from deployable.
version: '3.4'
services:
############
## Speech ##
############
speech:
build:
context: .
dockerfile: Dockerfile
# restart: always
expose:
- 3000
volumes:
- ../data/spee.ch:/data
labels:
# https://docs.traefik.io/user-guide/docker-and-lets-encrypt/
- "traefik.backend=speech"
- "traefik.docker.network=green"
- "traefik.frontend.rule=Host:YOURDOMAINHERE"
- "traefik.expose=true"
- "traefik.port=3000"
networks:
green:
ipv4_address: 10.5.1.6
aliases:
- speech
#############
## Lbrynet ##
#############
traefik:
build:
context: ../lbrynet-daemon/
dockerfile: Dockerfile
# restart: always
expose:
- 4444
- 50001
## host volumes for persistent data such as wallet private keys.
volumes:
- ../data/traefik:/data
labels:
test: traefik.enable=false
networks:
green:
ipv4_address: 10.5.1.7
aliases:
- lbrynet
#############
## MariaDB ##
#############
## https://hub.docker.com/r/_/mariadb/
mysql:
image: mariadb
# restart: always
environment:
MYSQL_SERVER: 10.5.1.8
MYSQL_USER: replaceme
MYSQL_PASSWORD: REPLACEME
MYSQL_DATABASE: speech
MYSQL_ROOT_PASSWORD: REPLACEME
expose:
- 3306
volumes:
- ../data/db:/var/lib/mysql
labels:
test: traefik.enable=false
networks:
green:
ipv4_address: 10.5.1.8
aliases:
- mysql
#######################
## Adminer container ##
#######################
adminer:
image: adminer
# restart: always
links:
- "mysql:database"
depends_on:
- mysql
labels:
# https://docs.traefik.io/user-guide/docker-and-lets-encrypt/
- "traefik.backend=adminer"
- "traefik.docker.network=green"
- "traefik.frontend.rule=Host:adminer.YOURDOMAINHERE"
- "traefik.expose=true"
- "traefik.port=8080"
# healthcheck:
# test: ["CMD", "curl", "--fail", "http://localhost:8080/", "||", "exit", "1"]
networks:
green:
ipv4_address: 10.5.1.9
aliases:
- adminer
#######################
## Traefik container ##
#######################
## https://www.digitalocean.com/community/tutorials/how-to-use-traefik-as-a-reverse-proxy-for-docker-containers-on-ubuntu-16-04
lbrynet
image: lbrynetalpine
# command: --api --docker --docker.domain=docker.localhost --logLevel=DEBUG
command: --api --docker --logLevel=ERROR
depends_on:
- adminer
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
expose:
- 8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/persistence/traefik/traefik.toml:/traefik.toml
## This is going to be stored by default in the following host dir in staging.
# There is a rate limit for how many issuances you can request per week.
# Because of this we will store the acme.json file persistently.
# In production we are going to need to figure out how it'll work with Kubernetes or variant.
- ../data/traefik/:/opt/traefik/
labels:
# https://docs.traefik.io/user-guide/docker-and-lets-encrypt/
- "traefik.backend=proxy"
- "traefik.docker.network=green"
- "traefik.frontend.rule=Host:monitor.YOURDOMAINHERE"
- "traefik.expose=true"
- "traefik.port=8080"
healthcheck:
test: ["CMD", "traefik", "healthcheck"]
timeout: 10s
retries: 3
networks:
green:
ipv4_address: 10.5.1.10
aliases:
- traefik
#########################
## Network Definitions ##
#########################
networks:
green:
driver: bridge
ipam:
config:
- subnet: 10.5.1.0/16