nim-dagger/docker/docker-compose.yaml
Ben Bierens d263ca0735
Docker build (#354)
* Sets up working dockerized build and codex docker image creation

* Making codex configurable from the docker environment

* Sets up two networks with three codex nodes

* enables and exposes metrics endpoint for first node

* Manually performed two-client test scenario with docker containers

* Sets up docker-ignore and docker github workflow

* Wires up all codex CLI arguments to docker env vars

* Makes API_PORT variable optional as well

* Removes duplicate docker-login step

* Fixes path to docker file

* Switches target dockerhub for debugging

* Adds git tag info to --version output

* Exposes version information via debug endpoint

* Debugging docker image

* specifies target platforms for docker build

* specifies platform for QEMU and buildx steps

* Attempt to debug line endings

* Disables march-native in config.nims as test

* Applies make argument to disable architecture optimization during docker build

* Removes subset version tags from docker build

* Restore multi-arch build

* Removes docker-build test branch from CI branches
2023-03-08 12:45:55 +01:00

78 lines
1.7 KiB
YAML

services:
codex-node1:
image: clustertest-nim-codex
build:
context: ../.
dockerfile: docker/codex.Dockerfile
ports:
- 8080:8080
# Available environment variables:
# environment:
# - LOG_LEVEL=TRACE
# - METRICS_ADDR=0.0.0.0
# - METRICS_PORT=9090
# - NAT_IP=2.3.4.5
# - API_PORT=8080
# - DISC_IP=3.4.5.6
# - DISC_PORT=8765
# - NET_PRIVKEY=privkey
# - BOOTSTRAP_SPR=bootstrap_record
# - MAX_PEERS=123
# - AGENT_STRING=agent_string
# - STORAGE_QUOTA=123456789
# - BLOCK_TTL=23456
# - CACHE_SIZE=6543
# - ETH_PROVIDER=eth
# - ETH_ACCOUNT=account
# - ETH_DEPLOYMENT=deploy
volumes:
- ./hostdatadir/node1:/datadir
networks:
- primary
# Example with metrics enabled.
codex-node2:
image: clustertest-nim-codex
ports:
- 8081:8080
- 9090:9090
environment:
- METRICS_ADDR=0.0.0.0
- METRICS_PORT=9090
volumes:
- ./hostdatadir/node2:/datadir
depends_on:
- codex-node1
networks:
- primary
- secondary
codex-node3:
image: clustertest-nim-codex
ports:
- 8082:8080
volumes:
- ./hostdatadir/node3:/datadir
depends_on:
- codex-node1
networks:
- secondary
prometheus:
image: prom/prometheus:v2.30.3
ports:
- 9000:9090
volumes:
- ./prometheus:/etc/prometheus
- ./prometheus-data:/prometheus
command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
networks:
- primary
- secondary
networks:
primary:
name: primary
secondary:
name: secondary