parent
f374898c6e
commit
a6a3c45194
@ -0,0 +1,184 @@ |
|||||||
|
# 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 |
||||||
|
``` |
@ -0,0 +1,73 @@ |
|||||||
|
# Docker 配置文件 |
||||||
|
|
||||||
|
这个目录包含了Spiderman项目的所有Docker相关配置文件。 |
||||||
|
|
||||||
|
## 文件说明 |
||||||
|
|
||||||
|
### Dockerfile |
||||||
|
多阶段构建的Docker镜像配置文件: |
||||||
|
- 基于Alpine Linux,镜像大小仅66.2MB |
||||||
|
- 非root用户运行,增强安全性 |
||||||
|
- 内置健康检查 |
||||||
|
- 支持环境变量配置 |
||||||
|
|
||||||
|
### docker-compose.yml |
||||||
|
Docker Compose服务编排配置: |
||||||
|
- 服务名:`spiderman-api` |
||||||
|
- 端口映射:`8888:8888` |
||||||
|
- 环境变量配置 |
||||||
|
- 健康检查 |
||||||
|
- 重启策略 |
||||||
|
|
||||||
|
### DOCKER_GUIDE.md |
||||||
|
详细的Docker使用指南,包含: |
||||||
|
- 镜像构建说明 |
||||||
|
- 容器运行方法 |
||||||
|
- 环境变量配置 |
||||||
|
- 故障排除指南 |
||||||
|
|
||||||
|
## 快速开始 |
||||||
|
|
||||||
|
### 构建镜像 |
||||||
|
```bash |
||||||
|
# 在项目根目录执行 |
||||||
|
docker build -t spiderman -f docker/Dockerfile . |
||||||
|
``` |
||||||
|
|
||||||
|
### 运行容器 |
||||||
|
```bash |
||||||
|
# 单独运行 |
||||||
|
docker run -p 8888:8888 spiderman |
||||||
|
|
||||||
|
# 使用docker-compose |
||||||
|
cd docker && docker-compose up -d |
||||||
|
``` |
||||||
|
|
||||||
|
### 使用Makefile |
||||||
|
```bash |
||||||
|
# 构建镜像 |
||||||
|
make docker-build |
||||||
|
|
||||||
|
# 运行容器 |
||||||
|
make docker-run |
||||||
|
|
||||||
|
# 使用docker-compose |
||||||
|
make docker-compose-up |
||||||
|
``` |
||||||
|
|
||||||
|
## 端口说明 |
||||||
|
|
||||||
|
- **8888**: API服务端口(可通过环境变量PORT修改) |
||||||
|
- **健康检查**: `GET /health` |
||||||
|
- **Swagger文档**: `GET /swagger/index.html` |
||||||
|
|
||||||
|
## 环境变量 |
||||||
|
|
||||||
|
主要环境变量配置: |
||||||
|
- `PORT`: 服务端口 (默认: 8888) |
||||||
|
- `CHAINCODE_NAME`: 链码名称 (默认: basic) |
||||||
|
- `CHANNEL_NAME`: 通道名称 (默认: mychannel) |
||||||
|
- `LOG_LEVEL`: 日志级别 (默认: info) |
||||||
|
- `LOG_FORMAT`: 日志格式 (默认: json) |
||||||
|
|
||||||
|
详细配置请参考 `DOCKER_GUIDE.md`。 |
Loading…
Reference in new issue