113 lines
2.5 KiB
Markdown
113 lines
2.5 KiB
Markdown
# راهنمای استقرار Docker
|
|
|
|
## شروع سریع
|
|
|
|
```bash
|
|
git clone https://github.com/katehonz/barabaDB.git
|
|
cd barabaDB
|
|
|
|
docker build -t baradb:latest .
|
|
|
|
docker compose up -d
|
|
|
|
docker compose ps
|
|
docker compose logs -f
|
|
```
|
|
|
|
## فایلها
|
|
|
|
| فایل | توضیح |
|
|
|------|--------|
|
|
| `Dockerfile` | ساخت multi-stage production |
|
|
| `docker-compose.yml` | پیکربندی توسعه |
|
|
| `docker-compose.prod.yml` | پیکربندی تولید |
|
|
| `docker-compose.override.yml` | Override توسعه |
|
|
| `docker-entrypoint.sh` | اسکریپت entrypoint |
|
|
| `.dockerignore` | فایلهای مستثنی از کپی |
|
|
| `scripts/docker-build.sh` | اسکریپت کمکی ساخت |
|
|
| `scripts/docker-run.sh` | اسکریپت کمکی اجرا |
|
|
|
|
## ساخت تصویر
|
|
|
|
```bash
|
|
docker build -t baradb:latest .
|
|
./scripts/docker-build.sh
|
|
```
|
|
|
|
## اجرا
|
|
|
|
### توسعه
|
|
|
|
```bash
|
|
docker compose up -d
|
|
docker compose down
|
|
docker compose logs -f
|
|
```
|
|
|
|
### تولید
|
|
|
|
```bash
|
|
docker compose -f docker-compose.prod.yml up -d
|
|
```
|
|
|
|
### دستی
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name baradb \
|
|
-p 9472:9472 \
|
|
-p 9470:9470 \
|
|
-p 9471:9471 \
|
|
-v baradb_data:/data \
|
|
baradb:latest
|
|
```
|
|
|
|
## پورتها
|
|
|
|
| پورت | توضیح |
|
|
|------|--------|
|
|
| `9472` | پروتکل باینری |
|
|
| `9470` | HTTP/REST API |
|
|
| `9471` | WebSocket |
|
|
|
|
## متغیرهای محیطی
|
|
|
|
| متغیر | پیشفرض | توضیح |
|
|
|--------|---------|--------|
|
|
| `BARADB_ADDRESS` | `0.0.0.0` | آدرس اتصال |
|
|
| `BARADB_PORT` | `9472` | پورت پروتکل باینری |
|
|
| `BARADB_HTTP_PORT` | `9470` | پورت HTTP |
|
|
| `BARADB_DATA_DIR` | `/data` | پوشه داده |
|
|
|
|
## Volumeها
|
|
|
|
| مسیر | توضیح |
|
|
|------|--------|
|
|
| `/data` | پوشه اصلی داده |
|
|
| `/data/server/wal` | Write-ahead log |
|
|
| `/data/server/sstables` | فایلهای SSTable |
|
|
|
|
## چکلیست تولید
|
|
|
|
- [ ] ایجاد گواهیهای TLS
|
|
- [ ] تنظیم `BARADB_JWT_SECRET` قوی
|
|
- [ ] پیکربندی قوانین فایروال
|
|
- [ ] تنظیم پشتیبانگیری منظم
|
|
- [ ] بررسی محدودیت منابع
|
|
- [ ] تنظیم مانیتورینگ
|
|
|
|
## TLS در Docker
|
|
|
|
```bash
|
|
mkdir -p certs
|
|
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
|
|
-keyout certs/server.key -out certs/server.crt
|
|
```
|
|
|
|
## پشتیبانگیری
|
|
|
|
```bash
|
|
docker exec baradb /app/backup backup --data-dir=/data
|
|
docker exec baradb /app/backup list
|
|
docker exec baradb /app/backup restore --input=backup_xxx.tar.gz
|
|
``` |