-
Notifications
You must be signed in to change notification settings - Fork 842
Add Dockerfile for consistent deployment environment #184
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks @hangfei for picking this up! Let me know if you'd like input on the initial Dockerfile or if there’s a preferred base image/setup you'd like to standardize on. I’d be happy to help test across a few agents and deployment modes (especially adk web and adk run) to make sure it works well out of the box. Looking forward to collaborating on this—just give me a shout if you want to split the work or review anything! |
Yeah, i will focusing on organizing and reviewing. We already have a docker file here: https://github.com/google/adk-python/blob/main/src/google/adk/cli/cli_deploy.py#L138. Anyone who is interested can try to make more generic and deploy to any clouds or clusters. This is a good issue that the community can contribute. If anyone is interested, please let me know. The interface should be close to adk deploy in to_cloud_run function. Please propose the interface and align on the user journey first. Please also mention what will not be supported. |
Thanks for sharing this! It sounds like a good opportunity to address a problem for the community. I'll explore and test on multiple clouds, and later propose a potential interface based on the current to_cloud_run function, we can iterate on it based on feedbacks recieved |
Hi @hangfei, Please go through the below proposal and let me know your valuable feedback: Problem Statement:
Proposed Solutions1. Generalize the Dockerfile
2. Modular Deployment Interface
Usage (user journey)
Acceptance criteria (Testing and Validation)
Documentation
What Will Not Be Supported:
Interface:
Future enhancement (Optional)
Please share your feedback and suggestions to proceed with the next steps. |
Hi @hangfei! 👋 I’ve released the first version of the proposal as a PR #395. This PR introduces deployment support for local Docker and GCP, using a flexible and extensible solution that will make it easy to add support for other cloud providers (e.g., AWS, Azure). If this direction looks good to you, I’d be happy to continue with additional provider support. In addition, community can extent support for other cloud providers and add more features based on their requirements. Looking forward to your feedback! |
Is your feature request related to a problem? Please describe.
The absence of a Dockerfile means each developer must manually manage dependencies, Python versions, and tools, which can lead to inconsistencies and onboarding friction.
Use Case: A developer can build a Docker image from the quickstart’s multi_tool_agent, test it locally in any mode, and confidently deploy to Cloud Run with minimal changes.
Describe the solution you'd like
As the first step, I'd like to add a docker directory and Dockerfile inside this directory. This would define a lightweight and portable container environment for adk-python, based on an official Python image.
Describe alternatives you've considered
(1) No Docker Support: Relying on virtual environments works, but lacks the portability and deployment alignment Docker offers, especially for Cloud Run users.
(2) Separate Dockerfiles for each mode (run, web, api_server). This adds complexity and maintenance overhead, so a single Dockerfile with command overrides is preferred with DEV UI (adk web) as default
Additional context
Overall this would improve the developer experience and make it easier to integrate with CI/CD pipelines, cloud deployments, and reproducible builds. I'm happy to submit a PR with a proposed Dockerfile and related documentation to align with the project's goals.
Let me know your thoughts and suggestions !
The text was updated successfully, but these errors were encountered: