soneium/docker-compose.yml

168 lines
6.0 KiB
YAML

services:
op-geth-minato:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:v1.101411.2
restart: unless-stopped
entrypoint: >
/bin/sh -c "
if [ ! -d /data/optimism/geth/chaindata ]; then
cp /config/minato-genesis.json /data/optimism/genesis.json &&
geth init --state.scheme=hash --datadir=/data/optimism /data/optimism/genesis.json
fi &&
geth --datadir=/data/optimism --http --http.corsdomain=* --http.vhosts=*
--http.addr=0.0.0.0 --http.api=web3,debug,eth,txpool,net,engine --ws
--ws.addr=0.0.0.0 --ws.port=8546 --ws.origins=* --ws.api=debug,eth,txpool,net,engine
--syncmode=full --gcmode=archive --maxpeers=100 --authrpc.vhosts=*
--authrpc.addr=0.0.0.0 --authrpc.port=8551 --authrpc.jwtsecret=/etc/optimism/jwt.txt --metrics
--metrics.addr=0.0.0.0 --metrics.expensive --metrics.port=6060 --nat=extip:###IP###
--rollup.disabletxpoolgossip=false --rpc.allow-unprotected-txs=true --override.fjord=1730106000
--override.granite=1730106000 --override.holocene=1734685200 --db.engine=pebble --state.scheme=hash
--port=30303 --metrics.influxdb --metrics.influxdb.endpoint "http://influxdb:8086"
--metrics.influxdb.username "admin" --metrics.influxdb.password "Overdrawn-Doorframe4-Lend"
--bootnodes=enode://6526c348274c54e7b4184014741897eb25e12ca388f588b0265bb2246caeea87ed5fcb2d55b7b08a90cd271a53bc76decb6d1ec37f219dbe4cd3ed53a888118b@peering-02.prd.hypersonicl2.com:30303,enode://34f172c255b11f64828d73c90a60395691e89782639423d434385594dd38b434ddffb78ad411da6fd37cbda6d0f93e17ceae399ac4f2594b0d54eb8c83c27de9@peering-01.prd.hypersonicl2.com:30303"
ports:
- "8551:8551"
- "6060:6060"
- "8545:8545"
- "8546:8546"
- "30303:30303"
volumes:
- op-geth-storage:/data/optimism
- ./minato-genesis.json:/config/minato-genesis.json
- ./jwt.txt:/etc/optimism/jwt.txt
- op-secrets:/etc/minato/secrets
networks:
- minato
logging:
driver: "json-file"
options:
max-file: 2
max-size: 5m
op-node-minato:
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.10.0
restart: unless-stopped
environment:
L1_URL: "https://ethereum-sepolia-rpc.publicnode.com"
L2_URL: "http://op-geth-minato:8551"
RPC_ADDR: "127.0.0.1"
RPC_PORT: "9545"
L2_JWT_SECRET: "/etc/optimism/jwt.txt"
L1_TRUST_RPC: "true"
L1_BEACON: "https://ethereum-sepolia-beacon-api.publicnode.com"
SYNC_MODE: "execution-layer"
L1_RPC_KIND: "standard"
OP_NODE_STATIC_PEERS: "/dns4/peering-01.prd.hypersonicl2.com/tcp/9222/p2p/16Uiu2HAm36ufaFmS3tjSjkUnwSJmQN8W8fZ8yXiu2AYL2o11EgcK,/dns4/peering-02.prd.hypersonicl2.com/tcp/9222/p2p/16Uiu2HAmPkRbG8kkhJ3JWmrqeiMvy1hWXFSz4s4rncVe8YiCJHmx"
P2P_PRIV_PATH: "/data/optimism/p2p.key"
P2P_DISCOVERY_PATH: "/data/optimism/p2p.db"
P2P_PEERSTORE_PATH: "/data/optimism/p2p-peerstore.db"
P2P_ADVERTISE_IP: "###IP###"
OP_NODE_P2P_PEER_BANNING: "false"
METRICS_ENABLED: "true"
METRICS_PORT: "7310"
OP_NODE_OVERRIDE_FJORD: "1730106000"
OP_NODE_OVERRIDE_GRANITE: "1730106000"
OP_NODE_OVERRIDE_HOLOCENE: "1734685200"
ROLLUP_CONFIG: "/config/minato-rollup.json"
command: >
op-node --l1=${L1_URL} --l2=${L2_URL} --rpc.addr=${RPC_ADDR} --rpc.port=${RPC_PORT}
--l2.jwt-secret=${L2_JWT_SECRET} --l1.trustrpc=${L1_TRUST_RPC} --l1.beacon=${L1_BEACON}
--syncmode=${SYNC_MODE} --l1.rpckind=${L1_RPC_KIND} --p2p.static=${OP_NODE_STATIC_PEERS}
--p2p.priv.path=${P2P_PRIV_PATH} --p2p.discovery.path=${P2P_DISCOVERY_PATH}
--p2p.peerstore.path=${P2P_PEERSTORE_PATH} --metrics.enabled=${METRICS_ENABLED}
--p2p.ban.peers=${OP_NODE_P2P_PEER_BANNING} --p2p.advertise.ip=${P2P_ADVERTISE_IP}
--metrics.port=${METRICS_PORT} --override.fjord=${OP_NODE_OVERRIDE_FJORD}
--override.granite=${OP_NODE_OVERRIDE_GRANITE} --override.holocene=${OP_NODE_OVERRIDE_HOLOCENE}
--rollup.config=${ROLLUP_CONFIG}
ports:
- "9545:9545"
- "7310:7310"
- "9222:9222"
volumes:
- op-node-storage:/data/optimism
- ./minato-rollup.json:/config/minato-rollup.json
- ./jwt.txt:/etc/optimism/jwt.txt
- op-secrets:/etc/minato/secrets
networks:
- minato
logging:
driver: "json-file"
options:
max-file: 2
max-size: 5m
prometheus:
container_name: prometheus # http://prometheus:9090
image: prom/prometheus:latest
restart: unless-stopped
command: --config.file=/etc/prometheus/prometheus.yml
ports:
# - "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
networks:
- minato
logging:
driver: "json-file"
options:
max-file: 5
max-size: 10m
influxdb:
image: influxdb:latest
container_name: influxdb # http://influxdb:8086
restart: unless-stopped
environment:
- INFLUXDB_DB=influx
- INFLUXDB_ADMIN_USER=admin
- INFLUXDB_ADMIN_PASSWORD=Overdrawn-Doorframe4-Lend
- TZ=Europe/Moscow
ports:
- '8086:8086'
volumes:
- influxdb_data:/var/lib/influxdb
networks:
- minato
logging:
driver: "json-file"
options:
max-file: 5
max-size: 10m
grafana: #dash 13877
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
depends_on:
- prometheus
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=Passing2-Edgy-Vexingly
- TZ=Europe/Moscow
ports:
- '3000:3000'
volumes:
- grafana_data:/var/lib/grafana
- grafana_conf:/etc/grafana
networks:
- minato
logging:
driver: "json-file"
options:
max-file: 5
max-size: 10m
volumes:
prometheus-data:
influxdb_data:
op-geth-storage:
op-node-storage:
op-secrets:
grafana_data:
grafana_conf:
networks:
minato:
driver: bridge