首页
/ Blockscout区块链浏览器Docker-compose部署指南

Blockscout区块链浏览器Docker-compose部署指南

2025-07-09 01:57:37作者:蔡丛锟

概述

Blockscout是一个开源的区块链浏览器解决方案,它允许用户浏览和搜索区块链上的交易、地址、代币和智能合约等信息。本文将详细介绍如何使用Docker-compose工具在本地环境中快速部署Blockscout区块链浏览器。

环境准备

在开始部署之前,请确保您的系统满足以下要求:

  1. Docker引擎版本20.10或更高
  2. Docker-compose 2.x.x或更高版本
  3. 已运行的区块链JSON RPC客户端(如Geth、Erigon等)

基础部署方法

从源码构建容器

如果您需要对Blockscout后端进行自定义修改,可以使用以下命令从源码构建Docker镜像:

cd ./docker-compose
docker-compose up --build

如果不需要修改后端代码,可以直接运行以下命令使用预构建的镜像,这将显著加快部署速度:

docker-compose up

默认配置会启动9个Docker容器,包括:

  1. Postgres 14.x数据库(主机端口7432)
  2. Redis数据库(最新版本)
  3. Blockscout后端服务(API路径为/api)
  4. Nginx反向代理
  5. Blockscout前端界面(访问地址http://localhost)
  6. 5个Rust编写的微服务容器

Linux用户注意事项

Linux用户需要确保本地节点运行在http://0.0.0.0/而不是http://127.0.0.1/。

针对不同区块链客户端的配置

Blockscout提供了针对不同JSON RPC客户端的预置配置文件:

客户端类型 启动命令
Erigon docker-compose -f erigon.yml up -d
Geth/Reth docker-compose -f geth.yml up -d
Geth Clique docker-compose -f geth-clique-consensus.yml up -d
Nethermind/OpenEthereum docker-compose -f nethermind.yml up -d
Anvil docker-compose -f anvil.yml up -d
HardHat网络 docker-compose -f hardhat-network.yml up -d

其他部署模式

  1. 仅运行浏览器(无数据库):使用external-db.yml配置,需通过DATABASE_URL环境变量提供数据库凭证
  2. 使用外部后端服务:使用external-backend.yml配置
  3. 使用外部前端服务:设置FRONT_PROXY_PASS环境变量并使用external-frontend.yml
  4. 仅运行微服务:使用microservices.yml配置
  5. 仅运行浏览器(无微服务):使用no-services.yml配置

所有配置默认假设区块链JSON RPC运行在http://localhost:8545。

要停止运行的容器,使用对应配置文件的down命令:

docker-compose -f config_file.yml down

环境变量配置

Blockscout的各项服务可以通过环境变量文件进行配置:

  1. 后端配置:./envs/common-blockscout.env
  2. 前端配置:./envs/common-frontend.env
  3. 统计服务:./envs/common-stats.env
  4. 可视化服务:./envs/common-visualizer.env
  5. 用户操作索引器:./envs/common-user-ops-indexer.env

使用Makefile管理容器

Blockscout还提供了Makefile来简化容器管理:

启动所有容器:

cd ./docker
make start

停止所有容器:

cd ./docker
make stop

Makefile同样使用上述.env文件进行配置。

最佳实践建议

  1. 生产环境部署时,建议使用外部数据库服务而非容器内数据库
  2. 根据您的区块链客户端类型选择对应的配置文件以获得最佳兼容性
  3. 定期检查并更新容器镜像以获取最新功能和安全修复
  4. 对于高流量环境,考虑调整Nginx和数据库的资源配置

通过本文介绍的Docker-compose部署方法,您可以快速搭建一个功能完整的Blockscout区块链浏览器环境,无论是用于开发测试还是生产部署。