version: '3.1' services: optimism-dtl: image: ethereumoptimism/data-transport-layer:${IMAGE_TAG__DTL:-latest} restart: unless-stopped user: root entrypoint: - /bin/sh - -c - "/scripts/dtl-start.sh" env_file: - ./optimism/env/dtl.env - .env volumes: - optimism-dtl:/db - ./optimism/scripts/:/scripts/ environment: - "SYNC_SOURCE=l2" - "DATA_TRANSPORT_LAYER__RPC_ENDPOINT=${OPTIMISM_L2_URL}" networks: - chains optimism-l2geth: image: ethereumoptimism/l2geth:${IMAGE_TAG__L2GETH:-latest} ulimits: nofile: 2048576 restart: unless-stopped stop_grace_period: 3m user: root entrypoint: - /bin/sh - -c - "/scripts/l2geth-init.sh && /scripts/l2geth-start.sh" env_file: - ./optimism/env/l2geth.env - .env volumes: - optimism-geth:/geth - ./optimism/scripts/:/scripts/ expose: - 8545 # http - 8546 # ws - 33289 # P2P ports: - "33289:33289" - "33289:33289/udp" environment: - "NODE_TYPE=archive" - "SYNC_SOURCE=l2" - "WS_PORT=8546" networks: - chains labels: - "prometheus-scrape.enabled=true" - "prometheus-scrape.port=6060" - "prometheus-scrape.job_name=optimism" - "prometheus-scrape.metrics_path=/debug/metrics/prometheus" - "traefik.enable=true" - "traefik.http.middlewares.optimism-archive-stripprefix.stripprefix.prefixes=/optimism-archive" - "traefik.http.services.optimism-archive.loadbalancer.server.port=8545" - "traefik.http.routers.optimism-archive.entrypoints=websecure" - "traefik.http.routers.optimism-archive.tls.certresolver=myresolver" - "traefik.http.routers.optimism-archive.rule=Host(`$DOMAIN`) && PathPrefix(`/optimism-archive`)" - "traefik.http.routers.optimism-archive.middlewares=optimism-archive-stripprefix, ipwhitelist" volumes: optimism-dtl: optimism-geth: