sozsoft-platform/configs/deployment/docker-compose-app.yml
2026-09-18 16:47:23 +03:00

89 lines
2.8 KiB
YAML

name: sozsoft-platform-app
networks:
db:
external: true
name: sozsoft-platform-data_db
volumes:
cdn:
api-keys:
sql-backups:
external: true
name: sozsoft-platform-data_sql-backups
services:
migrator:
labels:
- "keep=true"
image: devops.sozsoft.com/sozsoft/sozsoft-platform-migrator:latest
profiles: ["migrator"]
environment:
- ASPNETCORE_ENVIRONMENT=Dev
- DOTNET_ENVIRONMENT=Dev
- SEED=${SEED:-true}
volumes:
# Seed dosyalari imaja gomulmez; depodaki configs/seeds klasorunden mount edilir
# (App:SeedsPath). Boylece bir seed degistiginde imaj build etmek gerekmez,
# deploy sirasindaki git pull yeterlidir.
- ../seeds:/etc/api/seeds
networks:
- db
api:
image: devops.sozsoft.com/sozsoft/sozsoft-platform-api:latest
container_name: sozsoft-api
profiles: ["api"]
environment:
- ASPNETCORE_ENVIRONMENT=Dev
- DOTNET_ENVIRONMENT=Dev
# Istek ters vekilden HTTP olarak gelir. Bu anahtar olmadan Request.Scheme "http"
# kalir ve OpenIddict kesif belgesindeki authorization_endpoint/token_endpoint
# adreslerini http:// olarak uretir; OAuth 2.1 istemcileri (MCP connector'lari)
# TLS'siz uc kabul etmedigi icin baglanti kurulamaz. nginx bu basliklari her
# location blogunda set eder, istemciden gelen deger her zaman ezilir.
- ASPNETCORE_FORWARDEDHEADERS_ENABLED=true
ports:
- 8080:8080
volumes:
- cdn:/etc/api/cdn
- sql-backups:/etc/api/cdn/host/backup
# Seed dosyalari: migrator ile ayni depo klasoru. File Manager uzerinden yapilan
# duzenleme dogrudan host diskine yazilir ve deploy'lar arasinda kalici olur.
- ../seeds:/etc/api/seeds
- api-keys:/root/.aspnet/DataProtection-Keys
# Surum notlari imaja gomulmez; deploy sirasinda git tag'lerinden uretilip
# buradan okunur (ChangeLogStartupService). Boylece yeni tag API imajini
# yeniden derletmez.
- ../change-logs:/etc/api/change-logs:ro
# MCP get_dev_guide araci uretim sozlesmesini depodaki lowcode*.instructions.md
# dosyalarindan okur (App:DevGuidePath); rehber guncellendiginde imaj derlenmez.
- ../../.github/instructions:/etc/api/dev-guide:ro
networks:
- db
- default
ui:
image: devops.sozsoft.com/sozsoft/sozsoft-platform-ui:latest
container_name: sozsoft-ui
profiles: ["ui"]
ports:
- 3002:80
volumes:
- /home/user/sozsoft.com:/etc/ssl/sozsoft.com:ro
networks:
- default
cdn:
image: tozlu/http-server:latest
container_name: sozsoft-cdn
profiles: ["ui"]
working_dir: /srv/http-server
volumes:
- cdn:/public
- sql-backups:/public/host/backup
command: "/public -c10 --cors"
ports:
- 8081:8080
networks:
- default