# Public operator node. `docker compose up` pulls ghcr.io/base/node. # Pass --build to compile this tree (PROFILE=release, same as base/node). Pin with NODE_TAG=vX.Y.Z. services: execution: image: ghcr.io/base/node:${NODE_TAG:-latest} build: context: . dockerfile: etc/docker/Dockerfile.rust-services target: base args: PROFILE: ${PROFILE:-release} restart: unless-stopped ports: - "8545:8545" # RPC - "8546:8546" # websocket - "7301:6060" # metrics - "30303:30303" # P2P TCP - "30303:30303/udp" # P2P UDP command: ["bash", "./execution-entrypoint"] volumes: - ${HOST_DATA_DIR:-./reth-data}:/data env_file: - ${NETWORK_ENV:-.env.mainnet} # Use .env.mainnet by default, override with .env.sepolia for testnet node: image: ghcr.io/base/node:${NODE_TAG:-latest} build: context: . dockerfile: etc/docker/Dockerfile.rust-services target: base args: PROFILE: ${PROFILE:-release} restart: unless-stopped depends_on: - execution ports: - "7545:8545" # RPC - "9222:9222" # P2P TCP - "9222:9222/udp" # P2P UDP - "7300:7300" # metrics - "6060:6060" # pprof command: ["bash", "./consensus-entrypoint"] env_file: - ${NETWORK_ENV:-.env.mainnet} # Use .env.mainnet by default, override with .env.sepolia for testnet