92 lines
No EOL
2.6 KiB
YAML
92 lines
No EOL
2.6 KiB
YAML
# Compose stack for the kirche-einfach devcontainer.
|
|
# VS Code attaches to the `app` service (see devcontainer.json); all values
|
|
# come from the repo-root `.env` via `env_file` (no ${} interpolation needed).
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
args:
|
|
FORGEJO_USERNAME: jonas
|
|
command: sleep infinity
|
|
volumes:
|
|
- ..:/workspaces/kirche-einfach:cached
|
|
- kirche-einfach-venv:/workspaces/kirche-einfach/backend/.venv
|
|
- kirche-einfach-node-modules:/workspaces/kirche-einfach/frontend/node_modules
|
|
env_file:
|
|
- ../.env
|
|
ports:
|
|
- "8000:8000" # FastAPI
|
|
- "3000:3000" # Vite
|
|
|
|
langflow:
|
|
image: langflowai/langflow:latest
|
|
env_file:
|
|
- ../.env
|
|
environment:
|
|
# Static values only; secrets/URLs come from ../.env via env_file
|
|
# (compose interpolates ${} from .devcontainer/.env, not the repo-root .env).
|
|
LANGFLOW_CONFIG_DIR: /app/langflow
|
|
LANGFLOW_HOST: 0.0.0.0
|
|
PORT: "7860"
|
|
LANGFLOW_AUTO_LOGIN: "false"
|
|
LANGFLOW_API_KEY_SOURCE: env
|
|
# SQLite file inside the langflow-data volume (absolute path required
|
|
# by Langflow); overrides any postgres URL in ../.env.
|
|
LANGFLOW_DATABASE_URL: sqlite:////app/langflow/langflow.db
|
|
volumes:
|
|
- langflow-data:/app/langflow
|
|
ports:
|
|
- "7860:7860"
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
"python -c \"import urllib.request; urllib.request.urlopen('http://localhost:7860/health', timeout=5)\"",
|
|
]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 20
|
|
start_period: 60s
|
|
|
|
lfx:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.lfx
|
|
env_file:
|
|
- ../.env
|
|
volumes:
|
|
- lfx-data:/flows
|
|
ports:
|
|
- "6004:6004"
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
"python -c \"import urllib.request; urllib.request.urlopen('http://localhost:6004/health', timeout=5)\"",
|
|
]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 12
|
|
start_period: 30s
|
|
|
|
# Optional nightly auto-updates of :latest images. Not part of the default
|
|
# dev startup (no container updates needed while iterating).
|
|
watchtower:
|
|
image: nickfedor/watchtower:latest
|
|
profiles: ["updates"]
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
environment:
|
|
WATCHTOWER_LABEL_ENABLE: "true"
|
|
WATCHTOWER_SCHEDULE: "0 0 4 * * *"
|
|
WATCHTOWER_CLEANUP: "true"
|
|
WATCHTOWER_ROLLING_RESTART: "true"
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
|
|
volumes:
|
|
kirche-einfach-venv:
|
|
kirche-einfach-node-modules:
|
|
langflow-data:
|
|
lfx-data: |