You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
3.2 KiB
184 lines
3.2 KiB
# 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}}' <container_id>
|
|
```
|
|
|
|
## 端口说明
|
|
|
|
- **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 <container_id>
|
|
```
|
|
|
|
### 进入容器
|
|
```bash
|
|
docker exec -it <container_id> /bin/sh
|
|
```
|
|
|
|
### 停止容器
|
|
```bash
|
|
docker stop <container_id>
|
|
```
|
|
|
|
### 删除容器
|
|
```bash
|
|
docker rm <container_id>
|
|
```
|
|
|
|
## 镜像管理
|
|
|
|
### 查看镜像
|
|
```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 <container_id>
|
|
|
|
# 检查环境变量
|
|
docker inspect <container_id>
|
|
```
|
|
|
|
### 2. 网络连接问题
|
|
```bash
|
|
# 检查端口映射
|
|
docker port <container_id>
|
|
|
|
# 检查网络连接
|
|
docker exec -it <container_id> wget -O- http://localhost:8080/health
|
|
```
|
|
|
|
### 3. 证书路径问题
|
|
```bash
|
|
# 检查挂载的证书目录
|
|
docker exec -it <container_id> ls -la /crypto-config
|
|
``` |