# Spiderman Docker 使用指南 ## 镜像信息 - **镜像名称**: `spiderman` - **镜像大小**: 66.2MB - **版本标签**: `latest`, `v1.0.0` - **基础镜像**: Alpine Linux 3.18 - **Go版本**: 1.23 ## 构建Docker镜像 ### 1. 构建镜像 ```bash docker build -t spiderman:latest . ``` ### 2. 构建并添加版本标签 ```bash docker build -t spiderman:latest . docker tag spiderman:latest spiderman:v1.0.0 ``` ## 运行Docker容器 ### 1. 基本运行 ```bash docker run -p 8080:8080 spiderman:latest ``` ### 2. 后台运行 ```bash docker run -d -p 8080:8080 --name spiderman-api spiderman:latest ``` ### 3. 环境变量配置运行 ```bash docker run -p 8080:8080 \ -e PORT=8080 \ -e CHAINCODE_NAME=basic \ -e CHANNEL_NAME=mychannel \ -e LOG_LEVEL=info \ -e LOG_FORMAT=json \ spiderman:latest ``` ### 4. 挂载Fabric证书目录 ```bash docker run -p 8080:8080 \ -v /path/to/crypto-config:/crypto-config:ro \ -v /path/to/test-network:/test-network:ro \ spiderman:latest ``` ## 使用Docker Compose ### 启动服务 ```bash docker-compose up -d ``` ### 查看日志 ```bash docker-compose logs -f spiderman-api ``` ### 停止服务 ```bash docker-compose down ``` ## 健康检查 容器包含内置健康检查,每30秒检查一次API健康状态: ```bash # 检查容器健康状态 docker ps # 或 docker inspect --format='{{.State.Health.Status}}' ``` ## 端口说明 - **8080**: API服务端口 - **健康检查**: `GET /health` - **Swagger文档**: `GET /swagger/index.html` ## 容器特性 - ✅ 多阶段构建,最小化镜像大小 - ✅ 非root用户运行,增强安全性 - ✅ 内置健康检查 - ✅ CA证书支持HTTPS请求 - ✅ 支持环境变量配置 ## 环境变量 | 变量名 | 默认值 | 说明 | |--------|--------|------| | `PORT` | 8080 | API服务端口 | | `CHAINCODE_NAME` | basic | 链码名称 | | `CHANNEL_NAME` | mychannel | 通道名称 | | `LOG_LEVEL` | info | 日志级别 | | `LOG_FORMAT` | text | 日志格式 | | `CRYPTO_PATH` | /crypto-config | 证书路径 | | `PEER_ENDPOINT` | localhost:7051 | Peer节点地址 | | `GATEWAY_PEER` | peer0.org1.example.com | 网关Peer | | `MSPID` | Org1MSP | MSP ID | ## 容器管理 ### 查看运行中的容器 ```bash docker ps | grep spiderman ``` ### 查看容器日志 ```bash docker logs ``` ### 进入容器 ```bash docker exec -it /bin/sh ``` ### 停止容器 ```bash docker stop ``` ### 删除容器 ```bash docker rm ``` ## 镜像管理 ### 查看镜像 ```bash docker images | grep spiderman ``` ### 删除镜像 ```bash docker rmi spiderman:latest ``` ### 导出镜像 ```bash docker save spiderman:latest -o spiderman.tar ``` ### 导入镜像 ```bash docker load -i spiderman.tar ``` ## 故障排除 ### 1. 容器启动失败 ```bash # 查看容器日志 docker logs # 检查环境变量 docker inspect ``` ### 2. 网络连接问题 ```bash # 检查端口映射 docker port # 检查网络连接 docker exec -it wget -O- http://localhost:8080/health ``` ### 3. 证书路径问题 ```bash # 检查挂载的证书目录 docker exec -it ls -la /crypto-config ```