Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM python:3.12-slim

WORKDIR /app

# Install system dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends graphviz && \
rm -rf /var/lib/apt/lists/*

# Install google-adk from the local source
COPY pyproject.toml ./
COPY src/ ./src/

RUN pip install --no-cache-dir -e ".[dev]" 2>/dev/null || pip install --no-cache-dir -e .

# Create default agents directory
RUN mkdir -p /app/agents

EXPOSE 8000

ENTRYPOINT ["adk", "web", "--host", "0.0.0.0", "--port", "8000", "/app/agents"]
44 changes: 44 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
version: "3.8"

services:
adk:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
environment:
- GOOGLE_API_KEY=${GOOGLE_API_KEY:-}
- GOOGLE_CLOUD_PROJECT=${GOOGLE_CLOUD_PROJECT:-}
- GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_APPLICATION_CREDENTIALS:-}
volumes:
- ${ADK_AGENTS_DIR:-./agents}:/app/agents
networks:
- internal

oauth2-proxy:
image: quay.io/oauth2-proxy/oauth2-proxy:v7.7.1
restart: unless-stopped
ports:
- "443:4180"
environment:
OAUTH2_PROXY_PROVIDER: oidc
OAUTH2_PROXY_OIDC_ISSUER_URL: ${OIDC_ISSUER_URL:-https://logto.example.com/oidc}
OAUTH2_PROXY_CLIENT_ID: ${OIDC_CLIENT_ID:-}
OAUTH2_PROXY_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:-}
OAUTH2_PROXY_COOKIE_SECRET: ${OAUTH2_PROXY_COOKIE_SECRET:-}
OAUTH2_PROXY_REDIRECT_URL: ${OAUTH2_PROXY_REDIRECT_URL:-https://localhost/oauth2/callback}
OAUTH2_PROXY_UPSTREAMS: http://adk:8000/
OAUTH2_PROXY_HTTP_ADDRESS: 0.0.0.0:4180
OAUTH2_PROXY_EMAIL_DOMAINS: "*"
OAUTH2_PROXY_COOKIE_SECURE: "true"
OAUTH2_PROXY_SKIP_PROVIDER_BUTTON: "true"
OAUTH2_PROXY_PASS_ACCESS_TOKEN: "true"
OAUTH2_PROXY_PASS_AUTHORIZATION_HEADER: "true"
depends_on:
- adk
networks:
- internal

networks:
internal:
driver: bridge