## 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.0.6 aliases: - speech ############# ## Lbrynet ## ############# lbrynet: build: context: ../lbrynet-daemon/ dockerfile: Dockerfile # restart: always expose: - 4444 - 50001 ## host volumes for persistent data such as wallet private keys. volumes: - ../data/lbrynet:/data labels: test: traefik.enable=false networks: green: ipv4_address: 10.5.0.7 aliases: - lbrynet ############# ## MariaDB ## ############# ## https://hub.docker.com/r/_/mariadb/ mysql: image: mariadb # restart: always environment: MYSQL_SERVER: 10.5.0.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.0.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.0.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 traefik: image: traefik:alpine # 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.0.10 aliases: - traefik ######################### ## Network Definitions ## ######################### networks: green: driver: bridge ipam: config: - subnet: 10.5.0.0/16