-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathdocker-compose-dev.yml
More file actions
170 lines (160 loc) · 4.54 KB
/
docker-compose-dev.yml
File metadata and controls
170 lines (160 loc) · 4.54 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
services:
c4-frontend:
build:
context: frontend
dockerfile: Dockerfile
volumes:
- ./dev/Caddyfile:/etc/caddy/Caddyfile
ports:
- "3333:3080"
environment:
VERSION: 1.0.0-dev
depends_on:
c4-backend:
condition: service_started
c4-backend:
build:
context: backend
dockerfile: Dockerfile
hostname: c4-backend
environment:
AUTH_ENABLE_PASSWORD: true
BASE_URL: http://localhost:3333
AUTH_INITIAL_ADMIN_USERNAME: admin@example.com
AUTH_INITIAL_ADMIN_PASSWORD: secret
DB_URL: postgres://admin:secret@postgres:5432/cccc
NODE_ENV: production
SESSION_SECRET: random
# settings related to oicd
AUTH_USER_GROUPS_PROPERTY_NAME: groups
AUTH_USE_USER_GROUPS_FROM_AUTH_PROVIDER: true
AUTH_OAUTH_AUTHORIZATION_URL: http://localhost:9999/default/authorize
AUTH_OAUTH_BRAND_NAME: Local OICD
AUTH_OAUTH_CLIENTID: client_id
AUTH_OAUTH_CLIENTSECRET: client_secret
AUTH_OAUTH_TOKEN_URL: http://oauth:9999/default/token
AUTH_OAUTH_USER_INFO_URL: http://oauth:9999/default/userinfo
AUTH_LOGOUT_REDIRECT: http://localhost:9999/default/endsession?post_logout_redirect_uri=http://localhost:3333
VERSION: 1.0.0-dev
depends_on:
postgres:
condition: service_healthy
ports:
- "3334:3000"
healthcheck:
test: wget --no-verbose --spider --tries=1 http://localhost:3000/api/health || exit 1
interval: 1s
timeout: 1s
retries: 100
reis:
hostname: reis
build:
context: ./services/reis
environment:
EMBEDDINGS_TYPE: ollama
EMBEDDINGS_OLLAMA_ENDPOINT: http://ollama:11434
EMBEDDINGS_OLLAMA_MODEL_NAME: all-minilm
STORE_TYPE: pgvector
STORE_PGVECTOR_URL: postgresql+psycopg://admin:secret@postgres:5432/cccc
STORE_PGVECTOR_INDEX_NAME: basisreistest
FILE_STORE_TYPE: s3
FILE_STORE_S3_ENDPOINT_URL: http://minio:9000
FILE_STORE_S3_ACCESS_KEY_ID: admin
FILE_STORE_S3_SECRET_ACCESS_KEY: secretsecret
FILE_STORE_S3_BUCKET_NAME: reisbucket
VERSION: 1.0.0-dev
ports:
- "3201:3201"
- "3202:3202"
depends_on:
ollama:
condition: service_healthy
ollama-models-pull:
condition: service_completed_successfully
healthcheck:
# debian slim based image has no curl/wget
test: python3 -c "import urllib.request, sys; sys.exit(0) if urllib.request.urlopen('http://localhost:3201/health').status == 200 else sys.exit(1)" || exit 2
interval: 1s
timeout: 1s
retries: 20
ollama:
image: ollama/ollama:latest
restart: unless-stopped
volumes:
- ollama-data:/root/.ollama
ports:
- "11434:11434"
healthcheck:
test: [ "CMD", "ollama", "list" ]
interval: 10s
timeout: 30s
retries: 5
start_period: 60s
ollama-models-pull:
image: curlimages/curl:latest
depends_on:
ollama:
condition: service_healthy
command: >
curl -X POST ollama:11434/api/pull -d '{"name" : "llama3.2"}'
--next -X POST ollama:11434/api/pull -d '{"name" : "all-minilm"}'
postgres:
hostname: postgres
extends:
file: ./dev/postgres/docker-compose.yml
service: postgres
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U admin -d cccc" ]
interval: 1s
timeout: 1s
retries: 20
oauth:
image: ghcr.io/codecentric/c4-genai-suite/dev-helper/oauth-mock:latest
ports:
- "9999:9999"
mcp-fetch:
hostname: mcp-fetch
image: ghcr.io/codecentric/c4-genai-suite/dev-helper/mcp-tool-as-server:latest
container_name: c4-mcp-fetch-server
environment:
CONFIG: >
{
"mcpServers": {
"mcp-fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch",
"--ignore-robots-txt"
],
"port": 8000
}
}
}
ports:
- "8000:8000"
mcp-tool-servers:
hostname: mcp-tool-servers
image: ghcr.io/codecentric/c4-genai-suite/dev-helper/mcp-tool-as-server:latest
profiles:
- no-start
environment:
CONFIG: >
{
"mcpServers": {
"mcp-timeserver": {
"command": "uvx",
"args": [
"mcp-timeserver"
],
"port": 4000
}
}
}
minio:
hostname: minio
extends:
file: ./dev/minio/docker-compose.yml
service: minio
volumes:
extension-volume:
ollama-data: