morph: rename node morph-node->morph; add CL config seed (config.toml+genesis.json)

morphnode --mainnet does NOT self-generate config (crash: Config File not found in
/db/config). Add init container that seeds the committed morph/mainnet/node-data/config/
(config.toml + genesis.json, from run-morph-node) into /db/config (no-clobber). Node
renamed morph-node -> morph (cleaner; vol _morph, MORPH_MAINNET_MORPH_* env).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-15 12:02:56 +00:00
parent f4ce85bbcd
commit 2adce4cf5a
4 changed files with 599 additions and 6 deletions

View File

@@ -85,6 +85,7 @@ services:
- chains
volumes:
- ${MORPH_MAINNET_L2GETH_ARCHIVE_LEVELDB_HASH_MPT_DATA:-morph-mainnet-l2geth-archive-leveldb-hash-mpt}:/root/.ethereum
- ./morph/mainnet:/config
- .jwtsecret:/jwtsecret:ro
- /slowdisk:/slowdisk
logging: *logging-defaults
@@ -101,8 +102,24 @@ services:
- ${NO_SSL:+traefik.http.routers.morph-mainnet-l2geth-archive-leveldb-hash-mpt.rule=Path(`/morph-mainnet-archive`) || Path(`/morph-mainnet-archive/`)}
- traefik.http.routers.morph-mainnet-l2geth-archive-leveldb-hash-mpt.middlewares=morph-mainnet-l2geth-archive-leveldb-hash-mpt-stripprefix, ipallowlist
morph-mainnet-archive-node-init:
image: alpine:3.20
entrypoint: [/bin/sh, -c]
command:
- |
mkdir -p /db/config
cp -n /seed/config.toml /db/config/config.toml
cp -n /seed/genesis.json /db/config/genesis.json
restart: no
networks:
- chains
volumes:
- ./morph/mainnet/node-data/config:/seed:ro
- morph-mainnet-l2geth-archive-leveldb-hash-mpt_morph:/db
logging: *logging-defaults
morph-mainnet-archive-node:
image: ${MORPH_MORPH_NODE_IMAGE:-ghcr.io/morph-l2/node}:${MORPH_MAINNET_MORPH_NODE_VERSION:-0.5.7}
image: ${MORPH_MORPH_IMAGE:-ghcr.io/morph-l2/node}:${MORPH_MAINNET_MORPH_VERSION:-0.5.7}
ports:
- 26656:26656
- 26656:26656/udp
@@ -120,11 +137,15 @@ services:
entrypoint: [morphnode, --home, /db, --log.filename, /db/node.log, --mainnet]
restart: unless-stopped
depends_on:
- morph-mainnet-archive
morph-mainnet-archive-node-init:
condition: service_completed_successfully
morph-mainnet-archive:
condition: service_started
networks:
- chains
volumes:
- ${MORPH_MAINNET_L2GETH_ARCHIVE_LEVELDB_HASH_MPT__MORPH_NODE_DATA:-morph-mainnet-l2geth-archive-leveldb-hash-mpt_morph-node}:/db
- ${MORPH_MAINNET_L2GETH_ARCHIVE_LEVELDB_HASH_MPT__MORPH_DATA:-morph-mainnet-l2geth-archive-leveldb-hash-mpt_morph}:/db
- ./morph/mainnet:/config
- .jwtsecret:/jwtsecret:ro
logging: *logging-defaults
labels:
@@ -134,7 +155,7 @@ services:
volumes:
morph-mainnet-l2geth-archive-leveldb-hash-mpt:
morph-mainnet-l2geth-archive-leveldb-hash-mpt_morph-node:
morph-mainnet-l2geth-archive-leveldb-hash-mpt_morph:
x-upstreams:
- id: $${ID}