LogoLogo
  • ⏩Introduction
    • Hyperlane Introduction
    • Getting started
    • Why Should You Use Hyperlane?
  • Permissionless Interoperability
    • Overview
    • Deploy Hyperlane
    • Warp Routes
      • Deploy a Warp Route
      • Deploy a UI for your Warp Route
    • Modular Rollup Interoperability
  • Build With Hyperlane
    • Quickstarts
      • Messaging
      • Accounts
      • Queries
      • hyperlane-quickstart repo
    • Guides
      • Finding my messages
      • Automatically pay for interchain gas
      • Manually pay for interchain gas
      • Choosing an interchain gas paymaster contract
      • Unit testing
      • Specifying an ISM
      • V2 migration guide
    • Explorer
      • Debugging messages
      • Configuring PI Chains
      • REST API
      • GraphQL API
    • Troubleshooting/Developer FAQ
    • Example apps
  • APIs and SDKs
    • Messaging API
      • Send
      • Receive
    • Accounts API
    • Queries API
    • Warp Route API
    • Interchain gas paymaster API
    • Hyperlane App Framework
      • Example usage
        • HelloWorld
        • Interchain Token
      • Solidity SDK
        • HyperlaneConnectionClient
        • Router
      • NodeJS SDK
        • RPC Providers
        • Deployment
        • Interchain testing
        • Quoting gas payments
        • App Abstraction
    • Hooks API
      • Contract addresses
  • Protocol
    • Overview
    • Mailbox
    • Interchain security modules
      • Interface
      • Multisig ISM
      • Routing ISM
      • Aggregation ISM
      • Optimistic ISM
      • Wormhole ISM
      • Hook ISM
      • CCIP-Read ISM
    • Interchain gas payments
    • Staking and slashing
    • Agents
      • Validators
      • Relayers
      • Watchtowers
    • Warp Routes
    • Implementation Guide
  • Operators
    • Validators
      • Guide
      • AWS setup
      • Monitoring and alerting
    • Relayers
      • Guide
      • Message filtering
    • Agent keys
      • Hexadecimal keys
      • AWS KMS keys
    • Agent configuration
      • Configuration reference
    • Running with docker compose
  • Resources
    • FAQ
    • Glossary
    • Contract addresses
      • Permissionless Deployment Contract Addresses
    • Domain identifiers
      • Permissionless Domain Identifiers
    • Default ISM settings
    • Coming Soon: Hyperlane v3
    • Token sources & faucets
    • Latencies
    • Github
    • Discord
    • Website
Powered by GitBook
On this page
  1. Operators

Running with docker compose

PreviousConfiguration referenceNextFAQ

Last updated 1 year ago

Sometimes it is nice to not rely on long docker commands. Running with docker compose is very similar to using raw docker and you can find a full specification of the format in the .

This is an example docker-compose file for running a validator that should get you most of the way.

ethereum_validator.json
{
  "chains": {
    "ethereum": {
      "connection": {
        "type": "httpQuorum",
        "urls": "https://node1.com,https://node2.com,https://node3.com"
      }
    }
  },
  "originchainname": "ethereum",
  "validator": {
    "id": "alias/validator-signer-ethereum",
    "type": "aws",
    "region": "us-east-1"
  },
  "checkpointsyncer": {
    "bucket": "signatures-ethereum",
    "region": "us-east-1",
    "type": "s3"
  },
  "reorgperiod": 1,
  "interval": 30,
  "metrics": "9090"
}
compose.yml
services:
  ethereum-validator:
    image: gcr.io/abacus-labs-dev/hyperlane-agent:1fff74e-20230614-005705
    command: ./validator
    ports:
      - "9090:9090/tcp"
    environment:
      CONFIG_FILES: /ethereum_validator.json
      AWS_ACCESS_KEY_ID: somesecretkey
      AWS_SECRET_ACCESS_KEY: somesecretkey
    configs:
      - ethereum_validator.json
configs:
  ethereum_validator.json:
    file: ./ethereum_validator.json

The above has a lot of filler values, you will of course need to update those with real ones.

You can also specify multiple services, so if you are running several validators, you can specify each one under services.

To run the compose configuration use docker compose up and docker compose down to clean up after. Full documentation on the command line can be found on the .

docker docs
docker website