This repository was archived by the owner on Nov 7, 2026. It is now read-only.
Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
48 lines (47 loc) · 3.32 KB
/
Copy pathdocker-compose.yml
File metadata and controls
48 lines (47 loc) · 3.32 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
name: sysblok-mcp
services:
google-workspace-mcp:
image: ghcr.io/taylorwilsdon/google_workspace_mcp:${GOOGLE_WORKSPACE_MCP_VERSION:-latest}
container_name: sysblok-mcp-google
restart: unless-stopped
# Не переопределяем command: у образа ENTRYPOINT ["/bin/sh","-c"] и
# дефолтный CMD -- одна shell-строка вида
# `uv run main.py --transport streamable-http ${TOOL_TIER:+--tool-tier "$TOOL_TIER"} ...`,
# которая уже сама подставляет --transport и читает переменные TOOL_TIER
# и TOOLS. Переопределение command списком ломает это: /bin/sh -c
# получает наш список как command-string + позиционные параметры, а не
# как единственный аргумент -c (проверено: контейнер падал в краш-луп с
# `/bin/sh: 0: Illegal option --`).
environment:
- MCP_ENABLE_OAUTH21=true
- WORKSPACE_MCP_TRANSPORT=streamable-http
- WORKSPACE_MCP_HOST=0.0.0.0
- WORKSPACE_MCP_PORT=8000
- TOOL_TIER=${GOOGLE_WORKSPACE_TOOL_TIER:-core}
# --tool-tier сам по себе -- горизонтальный срез уровня "core" по ВСЕМ
# 12 сервисам образа (gmail, calendar, chat, contacts, forms, slides,
# tasks, search, appscript, ...), а не фильтр по конкретным сервисам.
# Без TOOLS ниже OAuth consent запросит доступ к Gmail/Calendar/etc.,
# хотя бандл заявлен как Docs+Sheets+Drive-only.
- TOOLS=${GOOGLE_WORKSPACE_TOOLS:-docs sheets drive}
- GOOGLE_OAUTH_CLIENT_ID=${GOOGLE_OAUTH_CLIENT_ID}
- GOOGLE_OAUTH_CLIENT_SECRET=${GOOGLE_OAUTH_CLIENT_SECRET}
- GOOGLE_OAUTH_REDIRECT_URI=http://localhost:8000/oauth2callback
- OAUTHLIB_INSECURE_TRANSPORT=1
# Образ работает под непривилегированным uid=1000(app), HOME=/home/app --
# /root закрыт для этого пользователя (0700 root:root), путь /root/...
# для этого образа непригоден (Permission denied).
- WORKSPACE_MCP_CREDENTIALS_DIR=/home/app/.google_workspace_mcp/credentials
ports:
# только localhost, и это обязательно: браузер стучится напрямую на
# localhost:8000 для OAuth-редиректа, поэтому порт должен быть
# опубликован на хосте, а не быть просто адресом во внутренней сети
# compose.
- "127.0.0.1:8000:8000"
volumes:
# bind mount, а не именованный volume, чтобы SETUP.md/человек могли
# проверить успешность авторизации простым `ls ./google-credentials`.
# Не кладём эту директорию под data/ -- если Docker успевает создать
# bind-mount директорию до первого успешного запуска, она достаётся
# root, и повторные попытки падают с Permission denied.
- ./google-credentials:/home/app/.google_workspace_mcp/credentials