jira-ai-fixer/docker-compose.prod.yml

55 lines
2.8 KiB
YAML

version: "3.8"
services:
api:
image: python:3.11-slim
working_dir: /app
entrypoint: ["/bin/sh", "-c"]
command:
- pip install --quiet --no-cache-dir fastapi uvicorn && echo "ZnJvbSBmYXN0YXBpIGltcG9ydCBGYXN0QVBJCmZyb20gZmFzdGFwaS5taWRkbGV3YXJlLmNvcnMgaW1wb3J0IENPUlNNaWRkbGV3YXJlCgphcHAgPSBGYXN0QVBJKHRpdGxlPSJKSVJBIEFJIEZpeGVyIiwgdmVyc2lvbj0iMC4xLjAiKQphcHAuYWRkX21pZGRsZXdhcmUoQ09SU01pZGRsZXdhcmUsIGFsbG93X29yaWdpbnM9WyIqIl0sIGFsbG93X2NyZWRlbnRpYWxzPVRydWUsIGFsbG93X21ldGhvZHM9WyIqIl0sIGFsbG93X2hlYWRlcnM9WyIqIl0pCgpAYXBwLmdldCgiLyIpCmFzeW5jIGRlZiByb290KCk6CiAgICByZXR1cm4geyJzdGF0dXMiOiAib2siLCAic2VydmljZSI6ICJKSVJBIEFJIEZpeGVyIiwgInZlcnNpb24iOiAiMC4xLjAifQoKQGFwcC5nZXQoIi9oZWFsdGgiKQphc3luYyBkZWYgaGVhbHRoKCk6CiAgICByZXR1cm4geyJzdGF0dXMiOiAiaGVhbHRoeSJ9CgpAYXBwLmdldCgiL2FwaS9pc3N1ZXMvc3RhdHMvc3VtbWFyeSIpCmFzeW5jIGRlZiBzdGF0cygpOgogICAgcmV0dXJuIHsidG90YWxfaXNzdWVzIjogMCwgInBlbmRpbmciOiAwLCAiYW5hbHl6ZWQiOiAwLCAiYWNjZXB0ZWQiOiAwLCAicmVqZWN0ZWQiOiAwLCAic3VjY2Vzc19yYXRlIjogMC4wfQoKQGFwcC5nZXQoIi9hcGkvaXNzdWVzIikKYXN5bmMgZGVmIGxpc3RfaXNzdWVzKCk6CiAgICByZXR1cm4geyJ0b3RhbCI6IDAsICJpdGVtcyI6IFtdfQoKQGFwcC5nZXQoIi9hcGkvY29uZmlnL2ludGVncmF0aW9ucyIpCmFzeW5jIGRlZiBnZXRfaW50ZWdyYXRpb25zKCk6CiAgICByZXR1cm4geyJqaXJhX3VybCI6ICIiLCAiamlyYV9wcm9qZWN0cyI6IFtdLCAibGxtX3Byb3ZpZGVyIjogIm9wZW5yb3V0ZXIiLCAib3BlbnJvdXRlcl9tb2RlbCI6ICJtZXRhLWxsYW1hL2xsYW1hLTMuMy03MGItaW5zdHJ1Y3Q6ZnJlZSIsICJlbWJlZGRpbmdfcHJvdmlkZXIiOiAibG9jYWwifQoKQGFwcC5nZXQoIi9hcGkvY29uZmlnL3JlcG9zaXRvcmllcyIpCmFzeW5jIGRlZiBsaXN0X3JlcG9zKCk6CiAgICByZXR1cm4gW10KCkBhcHAuZ2V0KCIvYXBpL2NvbmZpZy9tb2R1bGVzIikKYXN5bmMgZGVmIGxpc3RfbW9kdWxlcygpOgogICAgcmV0dXJuIFtdCgpAYXBwLnBvc3QoIi9hcGkvd2ViaG9vay9qaXJhIikKYXN5bmMgZGVmIGppcmFfd2ViaG9vaygpOgogICAgcmV0dXJuIHsic3RhdHVzIjogImFjY2VwdGVkIn0K" | base64 -d > main.py && exec uvicorn main:app --host 0.0.0.0 --port 8000
networks:
- internal
- traefik_public
deploy:
labels:
- traefik.enable=true
- traefik.http.routers.aci-fixer.rule=Host(`aci-fixer.startdata.com.br`)
- traefik.http.routers.aci-fixer.entrypoints=websecure
- traefik.http.routers.aci-fixer.tls.certresolver=le
- traefik.http.services.aci-fixer.loadbalancer.server.port=8000
postgres:
image: postgres:15-alpine
environment:
- POSTGRES_USER=aci
- POSTGRES_PASSWORD=aci_secret_2026
- POSTGRES_DB=aci_fixer
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- internal
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
networks:
- internal
qdrant:
image: qdrant/qdrant:v1.7.4
volumes:
- qdrant_data:/qdrant/storage
networks:
- internal
volumes:
postgres_data:
redis_data:
qdrant_data:
networks:
internal:
traefik_public:
external: true