-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
101 lines (96 loc) · 3.81 KB
/
docker-compose.yaml
File metadata and controls
101 lines (96 loc) · 3.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# docker-compose.yaml
#
# Local development stack:
# - app (api + worker + web) in one container
# - db (Postgres)
# - blob (Azurite)
#
# Quickstart:
# docker compose up --build -d
#
# Open:
# http://localhost:8000
services:
app:
image: automatic-data-extractor:local
build:
context: .
dockerfile: Dockerfile
target: production
env_file:
- path: ./.env
required: false
depends_on:
db:
condition: service_healthy
blob:
condition: service_started
blob-init:
condition: service_completed_successfully
volumes:
- app_data:/app/data
# - ./backend/data:/app/data
ports:
- 8000:8000
environment:
ADE_SERVICES: ${ADE_SERVICES:-api,worker,web}
ADE_API_PROCESSES: ${ADE_API_PROCESSES:-2}
ADE_WORKER_RUN_CONCURRENCY: ${ADE_WORKER_RUN_CONCURRENCY:-8}
ADE_AUTH_DISABLED: ${ADE_AUTH_DISABLED:-true} # Auth disabled for local development. Set to false to enable auth.
ADE_PUBLIC_WEB_URL: ${ADE_PUBLIC_WEB_URL:-http://localhost:8000}
ADE_DATABASE_URL: ${ADE_DATABASE_URL:-postgresql+psycopg://ade:ade@db:5432/ade?sslmode=disable}
ADE_BLOB_CONNECTION_STRING: ${ADE_BLOB_CONNECTION_STRING:-DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://blob:10000/devstoreaccount1;}
ADE_BLOB_CONTAINER: ${ADE_BLOB_CONTAINER:-ade}
ADE_BLOB_PREFIX: ${ADE_BLOB_PREFIX:-workspaces}
ADE_BLOB_VERSIONING_MODE: ${ADE_BLOB_VERSIONING_MODE:-auto} # auto|require|off; see docs/reference/environment-variables.md
ADE_DATA_DIR: /app/data
ADE_SECRET_KEY: ${ADE_SECRET_KEY:-dev-only-unsafe-secret-key-change-me-please-0000000000000000}
db:
image: postgres:18-bookworm
ports:
- 5432:5432
volumes:
- db_data:/var/lib/postgresql
environment:
# Compose-only local Postgres settings (not ADE runtime configuration).
POSTGRES_USER: ${POSTGRES_USER:-ade}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ade}
POSTGRES_DB: ${POSTGRES_DB:-ade}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 5s
timeout: 5s
retries: 30
blob:
image: mcr.microsoft.com/azure-storage/azurite:3.35.0
command: azurite-blob --silent --location /data --blobHost 0.0.0.0 --blobPort 10000 --disableTelemetry --skipApiVersionCheck
ports:
- 10000:10000
volumes:
- blob_data:/data
environment:
# Compose-only local Azurite setting (not ADE runtime configuration).
AZURITE_ACCOUNTS: ${AZURITE_ACCOUNTS:-devstoreaccount1:Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==}
healthcheck:
test: ["CMD", "node", "-e", "const net=require('net'); const c=net.createConnection({host:'127.0.0.1',port:10000}); const t=setTimeout(()=>{c.destroy(); process.exit(1)}, 1000); c.on('connect',()=>{clearTimeout(t); c.end(); process.exit(0)}); c.on('error',()=>{clearTimeout(t); process.exit(1)});"]
interval: 2s
timeout: 2s
retries: 30
start_period: 2s
blob-init:
image: mcr.microsoft.com/azure-cli:2.82.0
depends_on:
blob:
condition: service_healthy
command:
- sh
- -c
- az storage container create --name "$$ADE_BLOB_CONTAINER" --connection-string "$$ADE_BLOB_CONNECTION_STRING"
environment:
ADE_BLOB_CONNECTION_STRING: ${ADE_BLOB_CONNECTION_STRING:-DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://blob:10000/devstoreaccount1;}
ADE_BLOB_CONTAINER: ${ADE_BLOB_CONTAINER:-ade}
restart: "no"
volumes:
app_data:
db_data:
blob_data: