Files
sriphat-dataplatform/03-apiservice/docker-compose.yml
jigoong ee473aca8f fix: finance upload filepath bug and add extra_hosts for keycloak auth flow
- fix NameError: filepath undefined in trigger_airflow call (use filepath_stored)
- add extra_hosts ai.sriphat.com:192.168.100.8 for container DNS resolution
  (required for KEYCLOAK_SERVER_URL=http://ai.sriphat.com/keycloak/ to work
   inside Docker — host nginx on .8:80 routes /keycloak/ to Keycloak container)
2026-05-27 01:28:57 +07:00

62 lines
1.8 KiB
YAML

x-common-configs: &common-config
extra_hosts:
- "dev.sriphat.com:192.168.100.9"
- "ai.sriphat.com:192.168.100.8"
pull_policy: ${DOCKER_PULL_POLICY:-missing}
services:
apiservice:
#build: .
image: 03-apiservice-apiservice:latest
container_name: apiservice
env_file:
- .env
environment:
- TZ=${TZ:-Asia/Bangkok}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
- DB_NAME=${DB_NAME}
- DB_SSLMODE=${DB_SSLMODE}
- ROOT_PATH=${ROOT_PATH}
- APP_NAME=${APP_NAME}
- ADMIN_SECRET_KEY=${ADMIN_SECRET_KEY}
- ADMIN_USERNAME=${ADMIN_USERNAME}
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
- API_KEY_ENC_SECRET=${ADMIN_SECRET_KEY}
- DEBUG_AUTH=${DEBUG_AUTH:-false}
- KEYCLOAK_SERVER_URL=${KEYCLOAK_SERVER_URL}
- KEYCLOAK_REALM=${KEYCLOAK_REALM}
- KEYCLOAK_CLIENT_ID=${API_KEYCLOAK_CLIENT_ID}
- KEYCLOAK_CLIENT_SECRET=${API_KEYCLOAK_CLIENT_SECRET}
- KEYCLOAK_REDIRECT_URI=${API_KEYCLOAK_REDIRECT_URI}
- MINIO_ENDPOINT=${MINIO_ENDPOINT:-192.168.100.9:9000}
- MINIO_ACCESS_KEY=${MINIO_SVC_ACCESS_KEY}
- MINIO_SECRET_KEY=${MINIO_SVC_SECRET_KEY}
- MINIO_BUCKET_FINANCE=${MINIO_BUCKET_FINANCE:-finance}
- MINIO_USE_SSL=${MINIO_USE_SSL:-false}
- LOG_LEVEL=debug
ports:
- "8040:8040"
networks:
- shared_data_network
volumes:
- ./app:/app/app
- .env:/app/.env
- ./data/uploads:/data/uploads
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8040/apiservice/docs"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# extra_hosts:
# - "dev.sriphat.com:192.168.100.9"
<<: *common-config
networks:
shared_data_network:
external: true