version: "3.8" services: anvil: image: ghcr.io/foundry-rs/foundry:latest command: ["/workspace/containers/anvil-entrypoint.sh"] volumes: - .:/workspace:z expose: - "8545" restart: unless-stopped postgres: image: docker.io/library/postgres:16-alpine environment: - POSTGRES_USER=ponder - POSTGRES_PASSWORD=ponder_local - POSTGRES_DB=ponder_local volumes: - postgres-data:/var/lib/postgresql/data expose: - "5432" restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U ponder"] interval: 5s timeout: 5s retries: 5 bootstrap: image: ghcr.io/foundry-rs/foundry:latest user: "0:0" command: ["/workspace/containers/bootstrap.sh"] volumes: - .:/workspace:z environment: - ANVIL_RPC=http://anvil:8545 depends_on: anvil: condition: service_started postgres: condition: service_healthy restart: "no" ponder: build: context: . dockerfile: containers/node-dev.Containerfile entrypoint: ["/workspace/containers/ponder-dev-entrypoint.sh"] volumes: - .:/workspace:z - ./kraiken-lib/dist:/workspace/kraiken-lib/dist:ro,z - ponder-node-modules:/workspace/services/ponder/node_modules working_dir: /workspace environment: - CHOKIDAR_USEPOLLING=1 depends_on: anvil: condition: service_started postgres: condition: service_healthy expose: - "42069" restart: unless-stopped webapp: build: context: . dockerfile: containers/node-dev.Containerfile entrypoint: ["/workspace/containers/webapp-dev-entrypoint.sh"] volumes: - .:/workspace:z - ./kraiken-lib/dist:/workspace/kraiken-lib/dist:ro,z - webapp-node-modules:/workspace/web-app/node_modules working_dir: /workspace environment: - CHOKIDAR_USEPOLLING=1 depends_on: - anvil expose: - "5173" restart: unless-stopped landing: build: context: . dockerfile: containers/node-dev.Containerfile entrypoint: ["/workspace/containers/landing-dev-entrypoint.sh"] volumes: - .:/workspace:z - ./kraiken-lib/dist:/workspace/kraiken-lib/dist:ro,z - landing-node-modules:/workspace/landing/node_modules working_dir: /workspace environment: - CHOKIDAR_USEPOLLING=1 depends_on: - anvil expose: - "5174" restart: unless-stopped txn-bot: build: context: . dockerfile: containers/node-dev.Containerfile entrypoint: ["/workspace/containers/txn-bot-entrypoint.sh"] volumes: - .:/workspace:z - ./kraiken-lib/dist:/workspace/kraiken-lib/dist:ro,z - txn-node-modules:/workspace/services/txnBot/node_modules - kraiken-node-modules:/workspace/kraiken-lib/node_modules working_dir: /workspace depends_on: - anvil - ponder expose: - "43069" restart: unless-stopped caddy: image: docker.io/library/caddy:2.8 volumes: - ./containers/Caddyfile:/etc/caddy/Caddyfile:z ports: - "0.0.0.0:8081:80" depends_on: anvil: condition: service_started ponder: condition: service_started webapp: condition: service_started landing: condition: service_started txn-bot: condition: service_started restart: unless-stopped volumes: postgres-data: webapp-node-modules: landing-node-modules: ponder-node-modules: txn-node-modules: kraiken-node-modules: