87 lines
1.8 KiB
Markdown
87 lines
1.8 KiB
Markdown
# Docker + Prefect
|
||
|
||
## 1. 构建镜像
|
||
|
||
```bash
|
||
cd /Users/idss/YXT_Project/gmv-analytics
|
||
docker build -t gmv-analytics-prefect:latest .
|
||
```
|
||
|
||
## 2. 单次执行
|
||
|
||
```bash
|
||
docker run --rm \
|
||
--env-file /Users/idss/YXT_Project/gmv-analytics/.env \
|
||
-e PROJECT_MAPPING_FILE=/app/店铺映射表.xlsx \
|
||
gmv-analytics-prefect:latest \
|
||
python prefect_gmv_scheduler.py
|
||
```
|
||
|
||
## 3. 启动每天 09:00 的 Prefect 调度
|
||
|
||
这会连接 `.env` 中已经配置的 `PREFECT_API_URL`,并在 Prefect 中启动一个 deployment。
|
||
|
||
```bash
|
||
docker run --rm \
|
||
--env-file /Users/idss/YXT_Project/gmv-analytics/.env \
|
||
-e PROJECT_MAPPING_FILE=/app/店铺映射表.xlsx \
|
||
gmv-analytics-prefect:latest
|
||
```
|
||
|
||
容器默认执行:
|
||
|
||
```bash
|
||
python prefect_gmv_scheduler.py --serve
|
||
```
|
||
|
||
也可以直接用 Compose:
|
||
|
||
```bash
|
||
cd /Users/idss/YXT_Project/gmv-analytics
|
||
docker compose up -d --build
|
||
```
|
||
|
||
停止:
|
||
|
||
```bash
|
||
docker compose down
|
||
```
|
||
|
||
## 4. 如果你是用 Prefect worker 跑容器
|
||
|
||
先保证你的 Prefect worker 已经连到同一个 `PREFECT_API_URL`。
|
||
|
||
推荐命令示例:
|
||
|
||
```bash
|
||
prefect worker start --pool default-agent-pool --type process
|
||
```
|
||
|
||
如果你后面要改成真正的 Docker work pool,再在 Prefect UI 中把 deployment 的基础设施切到 Docker,并指定镜像:
|
||
|
||
```text
|
||
gmv-analytics-prefect:latest
|
||
```
|
||
|
||
## 5. 常用覆盖参数
|
||
|
||
单次 dry-run:
|
||
|
||
```bash
|
||
docker run --rm \
|
||
--env-file /Users/idss/YXT_Project/gmv-analytics/.env \
|
||
-e PROJECT_MAPPING_FILE=/app/店铺映射表.xlsx \
|
||
gmv-analytics-prefect:latest \
|
||
python prefect_gmv_scheduler.py --dry-run
|
||
```
|
||
|
||
指定时间范围:
|
||
|
||
```bash
|
||
docker run --rm \
|
||
--env-file /Users/idss/YXT_Project/gmv-analytics/.env \
|
||
-e PROJECT_MAPPING_FILE=/app/店铺映射表.xlsx \
|
||
gmv-analytics-prefect:latest \
|
||
python prefect_gmv_scheduler.py --start-date 2026-03-01 --end-date 2026-03-12
|
||
```
|