-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.minio-weaviate.ts.yaml
139 lines (132 loc) · 4.46 KB
/
docker-compose.minio-weaviate.ts.yaml
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
version: '3.8'
# Set Variables: TS_AUTHKEY, TS_CERT_DOMAIN, MINIO_DOMAIN, MINIO_BROWSER_REDIRECT_URL, MINIO_ROOT_USER, MINIO_ROOT_PASSWORD, WEAVIATE_ORIGIN
# Configuration Files: TS_SERVE_CONFIG
# ------------------------------------------
## Commands to set environment variables:
# export TS_AUTHKEY="your_tailscale_authkey"
# export TS_CERT_DOMAIN="your_cert_domain"
# export MINIO_DOMAIN="your_minio_domain"
# export MINIO_BROWSER_REDIRECT_URL="https://${MINIO_DOMAIN}"
# export MINIO_ROOT_USER="your_minio_root_user"
# export MINIO_ROOT_PASSWORD="your_minio_root_password"
# export WEAVIATE_ORIGIN="your_weaviate_origin"
# ------------------------------------------
services:
tailscale-minio:
image: tailscale/tailscale:latest
hostname: tailscale-minio # The Tailnet node will be named this for use with MagicDNS
volumes:
- /dev/net/tun:/dev/net/tun
- tailscale-minio-state:/var/lib/tailscale
environment:
- TS_AUTHKEY=${TS_AUTHKEY}
- TS_STATE_DIR=/var/lib/tailscale
- TS_SERVE_CONFIG=/TS_SERVE_CONFIG.json
- TS_EXTRA_ARGS=--advertise-routes=192.168.0.0/24 --advertise-tags=tag:infra --accept-routes --advertise-exit-node --ssh
cap_add:
- NET_ADMIN
- SYS_MODULE
restart: unless-stopped
minio:
image: minio/minio:latest
hostname: minio_server
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
MINIO_DOMAIN: minio.${TS_CERT_DOMAIN}
MINIO_BROWSER_REDIRECT_URL: https://${MINIO_DOMAIN}
command: server /data --address ":9000" --console-address ":9001"
volumes:
- minio_data:/data
depends_on:
- tailscale-minio
network_mode: service:tailscale-minio
ports:
- "9000:9000"
- "9001:9001"
tailscale-weaviate:
image: tailscale/tailscale:latest
hostname: tailscale-weaviate # The Tailnet node will be named this for use with MagicDNS
volumes:
- /dev/net/tun:/dev/net/tun
- tailscale-weaviate-state:/var/lib/tailscale
environment:
- TS_AUTHKEY=${TS_AUTHKEY}
- TS_STATE_DIR=/var/lib/tailscale
- TS_SERVE_CONFIG=/TS_SERVE_CONFIG.json
- TS_EXTRA_ARGS=--advertise-routes=192.168.0.0/24 --advertise-tags=tag:infra --accept-routes --advertise-exit-node --ssh
cap_add:
- NET_ADMIN
- SYS_MODULE
restart: unless-stopped
weaviate:
image: semitechnologies/weaviate:latest
hostname: weaviate_server
command:
- --host
- 0.0.0.0
- --port
- '8080'
- --scheme
- http
environment:
QUERY_DEFAULTS_LIMIT: 20
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
WEAVIATE_ORIGIN: ${WEAVIATE_ORIGIN}
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
ENABLE_MODULES: 'backup-s3,text2vec-cohere,text2vec-huggingface,text2vec-palm,text2vec-openai,generative-openai,generative-cohere,generative-palm,ref2vec-centroid,reranker-cohere,qna-openai'
BACKUP_S3_BUCKET: 'weaviate-backups'
BACKUP_S3_ENDPOINT: '${MINIO_DOMAIN}:9000'
BACKUP_S3_ACCESS_KEY_ID: ${MINIO_ROOT_USER}
BACKUP_S3_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD}
BACKUP_S3_USE_SSL: 'true'
ports:
- "8080:8080"
- "50051:50051" # gRPC port
depends_on:
- tailscale-weaviate
- minio
network_mode: service:tailscale-weaviate
volumes:
- weaviate_data:/var/lib/weaviate
tailscale-python:
image: tailscale/tailscale:latest
hostname: tailscale-python # The Tailnet node will be named this for use with MagicDNS
volumes:
- /dev/net/tun:/dev/net/tun
- tailscale-python-state:/var/lib/tailscale
environment:
- TS_AUTHKEY=${TS_AUTHKEY}
- TS_STATE_DIR=/var/lib/tailscale
- TS_SERVE_CONFIG=/TS_SERVE_CONFIG.json
- TS_EXTRA_ARGS=--advertise-routes=192.168.0.0/24 --advertise-tags=tag:infra --accept-routes --advertise-exit-node --ssh
cap_add:
- NET_ADMIN
- SYS_MODULE
restart: unless-stopped
python-app:
image: cdaprod/python-app
hostname: python_app
build:
context: ./app
dockerfile: Dockerfile
depends_on:
- weaviate
- minio
environment:
- KEEP_CONTAINER_ALIVE=true # Set to false or remove for production
network_mode: service:tailscale-python
volumes:
minio_data:
driver: local
weaviate_data:
driver: local
tailscale-minio-state:
driver: local
tailscale-weaviate-state:
driver: local
tailscale-python-state:
driver: local
networks:
app_network:
driver: bridge