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