diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..4fab7d7f50 --- /dev/null +++ b/Dockerfile @@ -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"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000000..f6a66b5197 --- /dev/null +++ b/docker-compose.yaml @@ -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