55 lines
2.8 KiB
YAML
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.jira-fixer.rule=Host(`jira-fixer.startdata.com.br`)
|
|
- traefik.http.routers.jira-fixer.entrypoints=websecure
|
|
- traefik.http.routers.jira-fixer.tls.certresolver=le
|
|
- traefik.http.services.jira-fixer.loadbalancer.server.port=8000
|
|
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
environment:
|
|
- POSTGRES_USER=aci
|
|
- POSTGRES_PASSWORD=aci_secret_2026
|
|
- POSTGRES_DB=jira_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
|