serai/deploy/docker-compose.yml
TheArchitect108 978304e224
Cluster Orchestration with Docker Compose (#114)
* add file

* builds + caching fixed

* bitcoin orchestration

* remove default entrypoint

* eth image and cleanup

* working monero

* remove signature file

* cleanup on aisle eth

* cleanup on aisle btc

* eth working

* remove docker ignore

* remove bitcoin image readme

* fix serai builds

* serai clusters

* added readme for docker

* formatting

* share the image

* newlines at EOF

* add multi profile example

* coin order

* coin order

* profile order

* fix grammar

* fix whitespace

* reduce trusted signature set, require at least 3 signatures.

* remove echo

* update comment to ref trusted keys

* comment fix

* use 16 keys, check for laanwj, name compose

* don't use bash

* monero fingerprints & eth fixes

* eth fixes

* remove extra eth keys
2022-09-12 15:01:14 -05:00

176 lines
3.4 KiB
YAML

version: "3.9"
name: serai-dev
# ------------------------------------------------------------
# Services
# ------------------------------------------------------------
# Profiles:
# base - single node, unidentified
# coins - node clients for coins only (BTC, ETH, XMR)
# cluster-sm - Alice, Bob, Charlie
# cluster-coins-sm - cluster-sm with coins
# cluter-lg - Alice, Bob, Charlie, Dave, Eve, Ferdie
# cluster-coins-lg - cluster-lg with coins
# monero - full node monero only
# bitcoin - full node bitcoin only
# ethereum - full node ethereum only
# Example: docker compose --profile bitcoin up
volumes:
serai-base:
serai-alice:
serai-bob:
serai-charlie:
serai-dave:
serai-eve:
serai-ferdie:
services:
_serai:
&serai_defaults
restart: unless-stopped
image: serai:dev
profiles:
- _
build:
context: ../
dockerfile: ./deploy/serai/Dockerfile
args:
TAG: serai
entrypoint: /scripts/entry-dev.sh
volumes:
- "./serai/scripts:/scripts"
serai-base:
&serai
<<: *serai_defaults
hostname: serai-base
profiles:
- base
environment:
CHAIN: dev
NAME: base
serai-alice:
&serai
<<: *serai_defaults
hostname: serai-alice
profiles:
- alice
- cluster-sm
- cluster-coins-sm
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
NAME: Alice
VALIDATOR: true
serai-bob:
&serai
<<: *serai_defaults
hostname: serai-bob
profiles:
- bob
- cluster-sm
- cluster-coins-sm
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
NAME: Bob
serai-charlie:
&serai
<<: *serai_defaults
hostname: serai-charlie
profiles:
- charlie
- cluster-sm
- cluster-coins-sm
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
NAME: Charlie
serai-dave:
&serai
<<: *serai_defaults
hostname: serai-dave
profiles:
- dave
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
NAME: Dave
serai-eve:
&serai
<<: *serai_defaults
hostname: serai-eve
profiles:
- eve
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
NAME: Eve
serai-ferdie:
&serai
<<: *serai_defaults
hostname: serai-ferdie
profiles:
- ferdie
- cluster-lg
- cluster-coins-lg
environment:
CHAIN: dev
NAME: Ferdie
# Processor Services
# Coin Services
bitcoin:
profiles:
- single-coins
- cluster-coins-sm
- cluster-coins-lg
- coins
- bitcoin
build:
context: ./coins/bitcoin/
restart: unless-stopped
volumes:
- "./coins/bitcoin/scripts:/scripts"
entrypoint: /scripts/entry-dev.sh
ethereum:
profiles:
- single-coins
- cluster-coins-sm
- cluster-coins-lg
- coins
- ethereum
build:
context: ./coins/ethereum/
restart: unless-stopped
volumes:
- "./coins/ethereum/scripts:/scripts"
entrypoint: /scripts/entry-dev.sh
monero:
profiles:
- single-coins
- cluster-coins-sm
- cluster-coins-lg
- coins
- monero
build:
context: ./coins/monero/
restart: unless-stopped
volumes:
- "./coins/monero/temp:/temp"
- "./coins/monero/scripts:/scripts"
entrypoint: /scripts/entry-dev.sh