Files
logiflow/podman-compose.yml

99 lines
2.2 KiB
YAML

networks:
default:
name: LogiflowNetwork
external: true
services:
postgres:
networks:
- default
image: docker.io/library/postgres:latest
restart: always
container_name: logiflow-postgres
env_file:
- .env
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql
- ./migrations:/docker-entrypoint-initdb.d
environment:
POSTGRES_PASSWORD: ${LOGIFLOW_DATABASE_PASSWORD}
POSTGRES_USER: ${LOGIFLOW_DATABASE_USER}
POSTGRES_DB: ${LOGIFLOW_DATABASE_NAME}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${LOGIFLOW_DATABASE_USER}"]
interval: 5s
timeout: 5s
retries: 5
redis:
networks:
- default
image: docker.io/library/redis:7-alpine
container_name: logiflow-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --requirepass ${LOGIFLOW_REDIS_PASSWORD}
env_file:
- .env
healthcheck:
test: ["CMD", "redis-cli", "-a", "${LOGIFLOW_REDIS_PASSWORD}", "ping"]
interval: 5s
timeout: 5s
retries: 5
prometheus:
networks:
- default
image: docker.io/prom/prometheus:latest
container_name: logiflow-prometheus
ports:
- "9090:9090"
volumes:
- ./configs/prometheus.yml:/etc/prometheus/prometheus.yml:ro
command:
- "--config.file=/etc/prometheus/prometheus.yml"
grafana:
networks:
- default
image: docker.io/grafana/grafana:latest
container_name: logiflow-grafana
ports:
- "3000:3000"
env_file:
- .env
environment:
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: admin
volumes:
- grafana_data:/var/lib/grafana
- ./configs/datasources:/etc/grafana/provisioning/datasources:ro
depends_on:
- prometheus
app:
networks:
- default
build:
context: .
dockerfile: Dockerfile
container_name: logiflow-app
ports:
- "3001:3001"
env_file:
- .env
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
postgres_data:
redis_data:
grafana_data: