ci: work pool + Gitee pull deployment (Dockerfile, prefect.yaml)
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||||
|
ENV PATH="/root/.local/bin:$PATH"
|
||||||
|
|
||||||
|
WORKDIR /opt/app
|
||||||
|
COPY pyproject.toml uv.lock ./
|
||||||
|
RUN uv sync --frozen --no-install-project
|
||||||
|
|
||||||
|
ENV PATH="/opt/app/.venv/bin:$PATH"
|
||||||
|
|
||||||
|
CMD ["prefect", "worker", "start", "-p", "inkreach-pool", "--type", "process"]
|
||||||
@@ -11,5 +11,14 @@ services:
|
|||||||
- prefect-data:/root/.prefect
|
- prefect-data:/root/.prefect
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
prefect-worker:
|
||||||
|
build: .
|
||||||
|
container_name: prefect-worker
|
||||||
|
environment:
|
||||||
|
PREFECT_API_URL: http://prefect-server:4200/api
|
||||||
|
depends_on:
|
||||||
|
- prefect-server
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
prefect-data:
|
prefect-data:
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
prefect-version: 3.7.8
|
||||||
|
name: inkreach-prefect
|
||||||
|
|
||||||
|
# 每次 flow run 前:从 Gitee clone 最新代码(token 运行时从 Secret 解析,不落盘)
|
||||||
|
pull:
|
||||||
|
- prefect.deployments.steps.git_clone:
|
||||||
|
repository: "https://oauth2:{{ prefect.blocks.secret.gitee-token }}@gitee.com/inkreachZLL/inkreach-prefect.git"
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
work_pool:
|
||||||
|
name: inkreach-pool
|
||||||
|
|
||||||
|
deployments:
|
||||||
|
# ---------- RIIN ----------
|
||||||
|
- name: riin-order-sync
|
||||||
|
entrypoint: flows/riin/order_sync.py:riin_order_sync
|
||||||
|
|
||||||
|
- name: riin-incremental-sync
|
||||||
|
entrypoint: flows/riin/incremental_sync.py:riin_incremental_sync
|
||||||
|
schedules:
|
||||||
|
- cron: "0 * * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
- name: riin-recent-sync
|
||||||
|
entrypoint: flows/riin/recent_sync.py:riin_recent_sync
|
||||||
|
schedules:
|
||||||
|
- cron: "30 * * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
- name: riin-refresh-pending
|
||||||
|
entrypoint: flows/riin/refresh_pending.py:riin_refresh_pending
|
||||||
|
schedules:
|
||||||
|
- cron: "0 */3 * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
- name: riin-by-orders-sync
|
||||||
|
entrypoint: flows/riin/by_orders.py:riin_by_orders_sync
|
||||||
|
|
||||||
|
- name: riin-verify
|
||||||
|
entrypoint: flows/riin/verify.py:riin_verify
|
||||||
|
schedules:
|
||||||
|
- cron: "0 6 * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
# ---------- SDS ----------
|
||||||
|
- name: sds-order-sync
|
||||||
|
entrypoint: flows/sds/order_sync.py:sds_order_sync
|
||||||
|
|
||||||
|
- name: sds-incremental-sync
|
||||||
|
entrypoint: flows/sds/incremental_sync.py:sds_incremental_sync
|
||||||
|
schedules:
|
||||||
|
- cron: "15 * * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
- name: sds-recent-sync
|
||||||
|
entrypoint: flows/sds/recent_sync.py:sds_recent_sync
|
||||||
|
schedules:
|
||||||
|
- cron: "45 * * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
- name: sds-refresh-pending
|
||||||
|
entrypoint: flows/sds/refresh_pending.py:sds_refresh_pending
|
||||||
|
schedules:
|
||||||
|
- cron: "0 */2 * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
- name: sds-refresh-100-prefix
|
||||||
|
entrypoint: flows/sds/refresh_100_prefix.py:sds_refresh_100_prefix
|
||||||
|
schedules:
|
||||||
|
- cron: "30 */2 * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
|
|
||||||
|
- name: sds-verify
|
||||||
|
entrypoint: flows/sds/verify.py:sds_verify
|
||||||
|
schedules:
|
||||||
|
- cron: "0 7 * * *"
|
||||||
|
timezone: "Asia/Shanghai"
|
||||||
Reference in New Issue
Block a user