Blockscout区块链浏览器Docker-compose部署指南
2025-07-09 01:57:37作者:蔡丛锟
概述
Blockscout是一个开源的区块链浏览器解决方案,它允许用户浏览和搜索区块链上的交易、地址、代币和智能合约等信息。本文将详细介绍如何使用Docker-compose工具在本地环境中快速部署Blockscout区块链浏览器。
环境准备
在开始部署之前,请确保您的系统满足以下要求:
- Docker引擎版本20.10或更高
- Docker-compose 2.x.x或更高版本
- 已运行的区块链JSON RPC客户端(如Geth、Erigon等)
基础部署方法
从源码构建容器
如果您需要对Blockscout后端进行自定义修改,可以使用以下命令从源码构建Docker镜像:
cd ./docker-compose
docker-compose up --build
如果不需要修改后端代码,可以直接运行以下命令使用预构建的镜像,这将显著加快部署速度:
docker-compose up
默认配置会启动9个Docker容器,包括:
- Postgres 14.x数据库(主机端口7432)
- Redis数据库(最新版本)
- Blockscout后端服务(API路径为/api)
- Nginx反向代理
- Blockscout前端界面(访问地址http://localhost)
- 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 |
其他部署模式
- 仅运行浏览器(无数据库):使用
external-db.yml
配置,需通过DATABASE_URL
环境变量提供数据库凭证 - 使用外部后端服务:使用
external-backend.yml
配置 - 使用外部前端服务:设置
FRONT_PROXY_PASS
环境变量并使用external-frontend.yml
- 仅运行微服务:使用
microservices.yml
配置 - 仅运行浏览器(无微服务):使用
no-services.yml
配置
所有配置默认假设区块链JSON RPC运行在http://localhost:8545。
要停止运行的容器,使用对应配置文件的down
命令:
docker-compose -f config_file.yml down
环境变量配置
Blockscout的各项服务可以通过环境变量文件进行配置:
- 后端配置:
./envs/common-blockscout.env
- 前端配置:
./envs/common-frontend.env
- 统计服务:
./envs/common-stats.env
- 可视化服务:
./envs/common-visualizer.env
- 用户操作索引器:
./envs/common-user-ops-indexer.env
使用Makefile管理容器
Blockscout还提供了Makefile来简化容器管理:
启动所有容器:
cd ./docker
make start
停止所有容器:
cd ./docker
make stop
Makefile同样使用上述.env文件进行配置。
最佳实践建议
- 生产环境部署时,建议使用外部数据库服务而非容器内数据库
- 根据您的区块链客户端类型选择对应的配置文件以获得最佳兼容性
- 定期检查并更新容器镜像以获取最新功能和安全修复
- 对于高流量环境,考虑调整Nginx和数据库的资源配置
通过本文介绍的Docker-compose部署方法,您可以快速搭建一个功能完整的Blockscout区块链浏览器环境,无论是用于开发测试还是生产部署。