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