Files
skunk-net-e2e/docker-compose.local.yml
2026-04-03 17:17:40 -04:00

216 lines
9.4 KiB
YAML

services:
wire-sysio-dev:
build:
context: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
dockerfile: etc/docker/Dockerfile
target: platform-dev
additional_contexts:
clang-18-scripts: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}/scripts/clang-18
app-root: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
image: ${WIRE_SYSIO_IMAGE:-wire/sysio:platform-dev-local}
user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"
working_dir: /wire
volumes:
- .:/wire
- ./.local/wire-node:/srv/wire-node
environment:
WIRE_ROOT: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
WIRE_SYSIO_DIR: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
command: ["bash", "-lc", "sleep infinity"]
wire-nodeop:
build:
context: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
dockerfile: etc/docker/Dockerfile
target: platform-dev
additional_contexts:
clang-18-scripts: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}/scripts/clang-18
app-root: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
image: ${WIRE_SYSIO_IMAGE:-wire/sysio:platform-dev-local}
user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"
working_dir: /wire
init: true
volumes:
- .:/wire
- ./.local/wire-node:/srv/wire-node
environment:
WIRE_ROOT: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
WIRE_SYSIO_DIR: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
WIRE_NODE_ROOT: ${WIRE_NODE_ROOT:-/srv/wire-node/chain-001}
WIRE_ARTIFACTS_DIR: /wire/.local/e2e
WIRE_ETH_DEPOT_ACCOUNT: ${WIRE_ETH_DEPOT_ACCOUNT:-sysio.dpeth}
WIRE_SOL_DEPOT_ACCOUNT: ${WIRE_SOL_DEPOT_ACCOUNT:-sysio.dpsol}
WIRE_INSTASWAP_ACCOUNT: ${WIRE_INSTASWAP_ACCOUNT:-sysio.iswap}
WIRE_WYIELD_ACCOUNT: ${WIRE_WYIELD_ACCOUNT:-sysio.wyield}
WIRE_TEST_USER_ACCOUNT: ${WIRE_TEST_USER_ACCOUNT:-userinsta1}
WIRE_BATCH_OPERATOR_ETH_ACCOUNT: ${WIRE_BATCH_OPERATOR_ETH_ACCOUNT:-bopeth111111}
WIRE_BATCH_OPERATOR_SOL_ACCOUNT: ${WIRE_BATCH_OPERATOR_SOL_ACCOUNT:-bopsol111111}
WIRE_BATCH_OPERATOR_ETH_WIRE_PROVIDER_ID: ${WIRE_BATCH_OPERATOR_ETH_WIRE_PROVIDER_ID:-wire-bopeth-1}
WIRE_BATCH_OPERATOR_SOL_WIRE_PROVIDER_ID: ${WIRE_BATCH_OPERATOR_SOL_WIRE_PROVIDER_ID:-wire-bopsol-1}
ports:
- "${WIRE_HTTP_PORT:-8887}:8887"
- "${WIRE_P2P_PORT:-4443}:4443"
command: ["bash", "-lc", "bash /wire/wire-nodeop-local.sh"]
batch-operator-eth-1:
build:
context: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
dockerfile: etc/docker/Dockerfile
target: platform-dev
additional_contexts:
clang-18-scripts: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}/scripts/clang-18
app-root: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
image: ${WIRE_SYSIO_IMAGE:-wire/sysio:platform-dev-local}
user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"
working_dir: /wire
init: true
volumes:
- .:/wire
environment:
WIRE_ROOT: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
WIRE_SYSIO_DIR: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
WIRE_BATCH_OPERATOR_ROUTE: eth
WIRE_BATCH_OPERATOR_INDEX: "1"
WIRE_BATCH_OPERATOR_ROOT: /wire/.local/wire-batch-operators
WIRE_BATCH_OPERATOR_ARTIFACTS_DIR: /wire/.local/e2e
WIRE_BATCH_OPERATOR_WIRE_RPC_URL: ${WIRE_BATCH_OPERATOR_WIRE_RPC_URL:-http://wire-nodeop:8887}
WIRE_BATCH_OPERATOR_WIRE_DEPOT_ACCOUNT: ${WIRE_BATCH_OPERATOR_ETH_WIRE_DEPOT_ACCOUNT:-sysio.dpeth}
WIRE_BATCH_OPERATOR_WIRE_ACCOUNT: ${WIRE_BATCH_OPERATOR_ETH_WIRE_ACCOUNT:-}
WIRE_BATCH_OPERATOR_WIRE_PROVIDER_ID: ${WIRE_BATCH_OPERATOR_ETH_WIRE_PROVIDER_ID:-}
WIRE_BATCH_OPERATOR_WIRE_PROVIDER_SPEC: ${WIRE_BATCH_OPERATOR_ETH_WIRE_PROVIDER_SPEC:-}
WIRE_BATCH_OPERATOR_SOURCE_CLIENT_ID: ${WIRE_BATCH_OPERATOR_ETH_CLIENT_ID:-eth-local-1}
WIRE_BATCH_OPERATOR_SOURCE_PROVIDER_ID: ${WIRE_BATCH_OPERATOR_ETH_PROVIDER_ID:-eth-local-1}
WIRE_BATCH_OPERATOR_SOURCE_PROVIDER_SPEC: ${WIRE_BATCH_OPERATOR_ETH_PROVIDER_SPEC:-}
WIRE_BATCH_OPERATOR_SOURCE_RPC_URL: ${WIRE_BATCH_OPERATOR_ETH_RPC_URL:-http://hardhat:8545}
WIRE_BATCH_OPERATOR_ETH_CHAIN_ID: ${WIRE_BATCH_OPERATOR_ETH_CHAIN_ID:-31337}
WIRE_BATCH_OPERATOR_ETH_ABI_FILE: ${WIRE_BATCH_OPERATOR_ETH_ABI_FILE:-/wire/.local/e2e/ethereum-outpost-abi.json}
WIRE_BATCH_OPERATOR_ETH_OPP_ADDRESS: ${WIRE_BATCH_OPERATOR_ETH_OPP_ADDRESS:-}
WIRE_BATCH_OPERATOR_ETH_OPP_INBOUND_ADDRESS: ${WIRE_BATCH_OPERATOR_ETH_OPP_INBOUND_ADDRESS:-}
WIRE_BATCH_OPERATOR_POLL_INTERVAL_MS: ${WIRE_BATCH_OPERATOR_POLL_INTERVAL_MS:-5000}
depends_on:
wire-nodeop:
condition: service_started
hardhat:
condition: service_started
command: ["bash", "-lc", "bash /wire/wire-batch-operator-local.sh eth 1"]
batch-operator-sol-1:
build:
context: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
dockerfile: etc/docker/Dockerfile
target: platform-dev
additional_contexts:
clang-18-scripts: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}/scripts/clang-18
app-root: ${WIRE_SYSIO_CONTEXT:-./wire-sysio}
image: ${WIRE_SYSIO_IMAGE:-wire/sysio:platform-dev-local}
user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"
working_dir: /wire
init: true
volumes:
- .:/wire
environment:
WIRE_ROOT: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
WIRE_SYSIO_DIR: /wire/${WIRE_SYSIO_REPO_DIR:-wire-sysio}
WIRE_BATCH_OPERATOR_ROUTE: sol
WIRE_BATCH_OPERATOR_INDEX: "1"
WIRE_BATCH_OPERATOR_ROOT: /wire/.local/wire-batch-operators
WIRE_BATCH_OPERATOR_ARTIFACTS_DIR: /wire/.local/e2e
WIRE_BATCH_OPERATOR_WIRE_RPC_URL: ${WIRE_BATCH_OPERATOR_WIRE_RPC_URL:-http://wire-nodeop:8887}
WIRE_BATCH_OPERATOR_WIRE_DEPOT_ACCOUNT: ${WIRE_BATCH_OPERATOR_SOL_WIRE_DEPOT_ACCOUNT:-sysio.dpsol}
WIRE_BATCH_OPERATOR_WIRE_ACCOUNT: ${WIRE_BATCH_OPERATOR_SOL_WIRE_ACCOUNT:-}
WIRE_BATCH_OPERATOR_WIRE_PROVIDER_ID: ${WIRE_BATCH_OPERATOR_SOL_WIRE_PROVIDER_ID:-}
WIRE_BATCH_OPERATOR_WIRE_PROVIDER_SPEC: ${WIRE_BATCH_OPERATOR_SOL_WIRE_PROVIDER_SPEC:-}
WIRE_BATCH_OPERATOR_SOURCE_CLIENT_ID: ${WIRE_BATCH_OPERATOR_SOL_CLIENT_ID:-sol-local-1}
WIRE_BATCH_OPERATOR_SOURCE_PROVIDER_ID: ${WIRE_BATCH_OPERATOR_SOL_PROVIDER_ID:-sol-local-1}
WIRE_BATCH_OPERATOR_SOURCE_PROVIDER_SPEC: ${WIRE_BATCH_OPERATOR_SOL_PROVIDER_SPEC:-}
WIRE_BATCH_OPERATOR_SOURCE_RPC_URL: ${WIRE_BATCH_OPERATOR_SOL_RPC_URL:-http://solana-validator:8899}
WIRE_BATCH_OPERATOR_SOL_PROGRAM_ID: ${WIRE_BATCH_OPERATOR_SOL_PROGRAM_ID:-}
WIRE_BATCH_OPERATOR_SOL_IDL_FILE: ${WIRE_BATCH_OPERATOR_SOL_IDL_FILE:-/wire/.branch-worktrees/capital-staking-opp-parity/target/idl/liqsol_core.json}
WIRE_BATCH_OPERATOR_POLL_INTERVAL_MS: ${WIRE_BATCH_OPERATOR_POLL_INTERVAL_MS:-5000}
depends_on:
wire-nodeop:
condition: service_started
solana-validator:
condition: service_healthy
command: ["bash", "-lc", "bash /wire/wire-batch-operator-local.sh sol 1"]
wire-ethereum-dev:
image: node:20-bookworm
user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"
working_dir: /workspace/${WIRE_ETHEREUM_REPO_DIR:-wire-ethereum}
volumes:
- .:/workspace
command: ["bash", "-lc", "sleep infinity"]
hardhat:
image: node:20-bookworm
user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"
working_dir: /workspace/${WIRE_ETHEREUM_REPO_DIR:-wire-ethereum}
volumes:
- .:/workspace
ports:
- "${HARDHAT_PORT:-8545}:8545"
command: ["bash", "-lc", "npm ci && npx hardhat node --hostname 0.0.0.0"]
capital-staking-dev:
build:
context: ${CAPITAL_STAKING_BUILD_CONTEXT:-./capital-staking}
dockerfile: docker/anchor-toolchain.Dockerfile
image: ${CAPITAL_STAKING_IMAGE:-skunk-net/capital-staking-dev:local}
user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"
working_dir: /workspace/${CAPITAL_STAKING_REPO_DIR:-capital-staking}
volumes:
- .:/workspace
environment:
ANCHOR_PROVIDER_URL: ${ANCHOR_PROVIDER_URL:-http://solana-validator:8899}
ANCHOR_WALLET: ${ANCHOR_WALLET:-/workspace/.branch-worktrees/capital-staking-opp-parity/wallets/deploymentWallet/universalDeploymentWallet.json}
DOCKER_CLUSTER: "1"
RPC_URL: ${RPC_URL:-http://solana-validator:8899}
REQUIRED_VALIDATORS: ${REQUIRED_VALIDATORS:-1}
SOLANA_RPC: ${SOLANA_RPC:-http://solana-validator:8899}
depends_on:
solana-validator:
condition: service_healthy
command: ["bash", "-lc", "sleep infinity"]
solana-validator:
build:
context: ./solana-docker-setup
dockerfile: Dockerfile
image: ${SOLANA_DOCKER_IMAGE:-skunk-net/solana-validator:local}
working_dir: /solana
volumes:
- solana-validator-data:/solana-data
ports:
- "${SOLANA_GOSSIP_PORT:-8001}:8001/udp"
- "${SOLANA_RPC_PORT:-8899}:8899"
- "${SOLANA_WS_PORT:-8900}:8900"
- "${SOLANA_FAUCET_PORT:-9900}:9900"
environment:
IS_GENESIS: "true"
NODE_NAME: genesis
GOSSIP_HOST: solana-validator
GOSSIP_PORT: ${SOLANA_GOSSIP_PORT:-8001}
RPC_PORT: 8899
RPC_BIND_ADDRESS: 0.0.0.0
BIND_ADDRESS: 0.0.0.0
FAUCET_ENABLE: "true"
FAUCET_ADDRESS: 0.0.0.0
FAUCET_PORT: 9900
SLOTS_PER_EPOCH: ${SOLANA_SLOTS_PER_EPOCH:-64}
DATA_DIR: /solana-data/genesis
SOLANA_RUN_SH_VALIDATOR_ARGS: ${SOLANA_RUN_SH_VALIDATOR_ARGS:-}
ulimits:
nofile:
soft: 1000000
hard: 1000000
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8899/health >/dev/null"]
interval: 5s
timeout: 5s
retries: 60
start_period: 120s
volumes:
solana-validator-data: