Added prefect
This commit is contained in:
BIN
public/svgs/prefect.png
Normal file
BIN
public/svgs/prefect.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
87
templates/compose/prefect.yaml
Normal file
87
templates/compose/prefect.yaml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# documentation: https://www.prefect.io/
|
||||||
|
# slogan: Prefect is an orchestration and observability platform that empowers developers to build and scale workflows quickly.
|
||||||
|
# tags: workflow, orchestration, data-pipeline, python, automation, data-processing, data-integration, etl
|
||||||
|
# logo: svgs/prefect.png
|
||||||
|
# port: 4200
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pg_data:
|
||||||
|
|
||||||
|
services:
|
||||||
|
prefect:
|
||||||
|
image: "prefecthq/prefect:3-latest"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
postgresql:
|
||||||
|
condition: service_healthy
|
||||||
|
environment:
|
||||||
|
- SERVICE_FQDN_PREFECT_4200
|
||||||
|
- PREFECT_API_DATABASE_CONNECTION_URL=postgresql+asyncpg://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgresql:5432/${POSTGRES_DB:-prefect}
|
||||||
|
- PREFECT_API_KEY=${SERVICE_PASSWORD_APIKEY}
|
||||||
|
- PREFECT_EXPERIMENTAL_WARN=true
|
||||||
|
- PREFECT_EXPERIMENTAL_ENABLE_SCHEDULE_CONCURRENCY=true
|
||||||
|
- PREFECT_RUNNER_SERVER_ENABLE=true
|
||||||
|
- PREFECT_DEFAULT_WORK_POOL_NAME=${DEFAULT_POOL_NAME:-default}
|
||||||
|
command:
|
||||||
|
- prefect
|
||||||
|
- server
|
||||||
|
- start
|
||||||
|
- "--host"
|
||||||
|
- 0.0.0.0
|
||||||
|
- "--port"
|
||||||
|
- "4200"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- python
|
||||||
|
- "-c"
|
||||||
|
- "import requests as r;r.get('http://127.0.0.1:4200/api/health').raise_for_status()"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
postgresql:
|
||||||
|
image: "postgres:16-alpine"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- "pg_data:/var/lib/postgresql/data"
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||||
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:-prefect}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
agent:
|
||||||
|
image: "prefecthq/prefect:3-python3.12"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
prefect:
|
||||||
|
condition: service_healthy
|
||||||
|
entrypoint:
|
||||||
|
- /opt/prefect/entrypoint.sh
|
||||||
|
- prefect
|
||||||
|
- worker
|
||||||
|
- start
|
||||||
|
- "--pool=$${DEFAULT_POOL_NAME}"
|
||||||
|
- "--with-healthcheck"
|
||||||
|
- "--name=$${DEFAULT_WORKER_NAME}"
|
||||||
|
- "--limit=$${DEFAULT_POOL_LIMIT}"
|
||||||
|
environment:
|
||||||
|
- PREFECT_API_URL=http://prefect:4200/api
|
||||||
|
- PREFECT_API_KEY=${SERVICE_PASSWORD_APIKEY}
|
||||||
|
- DEFAULT_POOL_NAME=${DEFAULT_POOL_NAME:-default}
|
||||||
|
- DEFAULT_POOL_LIMIT=${DEFAULT_POOL_LIMIT:-1}
|
||||||
|
- DEFAULT_WORKER_NAME=${DEFAULT_WORKER_NAME:-worker1}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- pwd
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
Reference in New Issue
Block a user