Setting up development environments takes time. Doing this more than once is a time sink and prone to error. So how can we reduce setup complexity and quickly get to productively writing code? I’ve been looking at this problem and applying it to my own apps for AI with Google ADK and Python.Setting up development environments takes time. Doing this more than once is a time sink and prone to error. So how can we reduce setup complexity and quickly get to productively writing code? I’ve been looking at this problem and applying it to my own apps for AI with Google ADK and Python.

Stop Wasting Weeks on Dev Setup: Containers to the Rescue

2025/12/11 13:45

Setting up development environments takes time. Doing this more than once is a time sink and prone to error. So how can we reduce setup complexity and quickly get to productively writing code ?

I’ve been looking at this problem and applying it to my own apps for AI with Google ADK and Python.

We need to talk about setup

Who has never heard ‘it works on my laptop’ when apps fail in production or on another developers laptop ?

Manually building development environments can be labour intensive and error prone. I’ve seen 2 week lead times set aside for this in some places. This being a part of what was seen as ‘induction’ or ‘familiarization’ exercises.

Surely we can do better. Containers I believe are a good starting point. Investing in workflows that employ them is in my opinion, time well spent.

inftools-cn

inftools-cn is a container that is built for rapid deployments of mvk, a minimal viable kubernetes environment/ It has a built in Python tooling for some AI workflows and development using pip and uv. It also has additional tooling needed for local and remote kubernetes administration such as kubectlk3d docker cli.

Without a container, each of these tools would need to be added to our environment manually. Each in turn need maintained, updated and security scanned. This takes precious time away from development and which can be automated.

inftools-cn is built with a pipeline that uses trivy to scan for and halt deployments that have critical CVE alerts. Using tooling like this takes yet another headache away.

inftools-cn is still early in its development and will have more tooling added over time. This will make it a part of my daily workflow using kubernetes, python and agentic AI.

Getting Started

Prerequisites

The following are pre-requisites for this article’ approach to container development workflows:

  • Docker
  • VSCode
  • VSCode Extensions
  • container tools
  • dev containers
  • python language support

I chose to use VSCode as it has well supported container support through extensions from Microsoft.

ADK setup

To get started with an environment for ADK development, make a new directory for a project and add a docker compose file.

Open this folder in VSCode:

mkdir -p ~/projects/adk cd ~/projects/adk wget https://codeberg.org/headshed/inftools-cn/raw/branch/main/docker-compose.yml code .

start the container stack

Click on Run All Services, then in the container view in VSCode ( find this in the left window ), Attach visual studio code VSCode container extension makes it easy to open a development environment within a running container

This will open another VSCode instance within the container we just started.

The 2nd VSCode instance is where we will work from and the first one can be closed.

Open a new terminal in VSCode

cntrl / command + shift + `

Which opens a console in the home directory of the container:

user@6bccffe008e0:~$ pwd /home/user

In this console, a new python virtual environment can be created:

user@6bccffe008e0:~$ uv venv Using CPython 3.13.11 interpreter at: /usr/bin/python3 Creating virtual environment at: .venv Activate with: source .venv/bin/activate

As suggested, running the source command in the current shell

source .venv/bin/activate

… activates a python virtual environment in this, current, shell however to apply globally in our project in VSCode

control / command + shift + p to enter command mode

Type and select: Python: Select interpreter

Add an interpreter path of:

/home/user/.venv/bin/python

When opening subsequent shells within VSCode, the .venv environment will be applied automatically

Following the ADK docs

The Python quickstart for ADK can be followed for the most part but for its initial installation we need to use uv:

uv pip install google-adk

This sets up google-adk within the uv environment

in the same article by google, create an agent project, a new agent can be created in our new container with

adk create my_agent

I accepted the first and default options for most questions asked by the adk cli and added a valid API token from google api keys

This creates a new agent stub.

We can update the agent to tell the time in cities around the world

Testing ADK commmand line

To test our agent in the command line:

adk run my_agent

Which yields a command line session in which we can converse with the agent:

Running agent root_agent, type exit to exit. [user]: what is the time in new york, USA [root_agent]: The current time in New York, USA is 10:30 AM.

Testing ADK Using its Web Console

We can interact with our models using a rich web console environment:

adk web --port 8000

This opens the web browser app of adk that vscode will proxy for us and shows a helper to open in a browser:

We can talk to our agent now in this browser and debug environment

Why bother with development containers ?

This simple workflow could have been achieved by manually installing all of the tools that come bundled with inftools-cn.

However, this would need at least to include a recent version of python where it is not already present. Windows users may find this to be necessary outside of Windows subsystem for Linux ( WSL ), Linux and Mac users perhaps not so much.

the uv command is a simple curl command to install and we needed to add vscode plugins to run vscode within our container and initially to start the container up

We could conclude inftools-ci is over engineered, however, even these few steps, once done have to be done again and again on every new environment and each can have subtle differences.

As more tools are added, this will increase the operational load of our environment setup.

Any creature comforts we add in to our environment to give enhanced shell experience can quickly add to an array of manual steps that need to be repeated for every single laptop, workstation or virtual desktop we need to use.

Without pinned container versions, python and uv can vary across our environments and saying ‘it works on my laptop’ to someone telling us our code doesn't work in theirs is cold comfort and a bad developer experience.

As our projects become more complex, more tooling will be required and using a container with all dependencies built in aids our workflow and reduces the risk of incompatibilities being introduced and resulting in broken code for other developers.

If we run several development environments, be it just a couple of laptops or develop on a laptop to deploy to the cloud, we can experience differences in build and production environments that become critical, harmful even to our user’s experience.

The inftools-cn container has its own build pipeline that we can check to see if it is recent and up to date.

It’s pipeline is configured to block releases if critical CVE vulnerabilities are present and even gives us a software bill of materials for compliance and security checks.

The benefits of using containers for development become more evident as we add build infrastructure and pipelines that support such a container workflow.

Now, If my laptop blows up, is stolen or lost in any other kind of disaster, how do I get up and running as quickly as possible ?

Containers like inftools-ci can play a part in having our own business continuity plan.

Of course, you don’t have to use this particular container. You can build your own and inftools-ci may be used as a template to do so.

Understanding the build process for your own containers, based on the above would be the subject of another article.

If you are interested in de-mystifying the dark arts of building containers for development, stay tuned as this is planned to be a follow up article soon, or find me on socials and lets talk about what your building.

\

Market Opportunity
LETSTOP Logo
LETSTOP Price(STOP)
$0.01605
$0.01605$0.01605
-7.86%
USD
LETSTOP (STOP) Live Price Chart
Disclaimer: The articles reposted on this site are sourced from public platforms and are provided for informational purposes only. They do not necessarily reflect the views of MEXC. All rights remain with the original authors. If you believe any content infringes on third-party rights, please contact [email protected] for removal. MEXC makes no guarantees regarding the accuracy, completeness, or timeliness of the content and is not responsible for any actions taken based on the information provided. The content does not constitute financial, legal, or other professional advice, nor should it be considered a recommendation or endorsement by MEXC.

You May Also Like

The Channel Factories We’ve Been Waiting For

The Channel Factories We’ve Been Waiting For

The post The Channel Factories We’ve Been Waiting For appeared on BitcoinEthereumNews.com. Visions of future technology are often prescient about the broad strokes while flubbing the details. The tablets in “2001: A Space Odyssey” do indeed look like iPads, but you never see the astronauts paying for subscriptions or wasting hours on Candy Crush.  Channel factories are one vision that arose early in the history of the Lightning Network to address some challenges that Lightning has faced from the beginning. Despite having grown to become Bitcoin’s most successful layer-2 scaling solution, with instant and low-fee payments, Lightning’s scale is limited by its reliance on payment channels. Although Lightning shifts most transactions off-chain, each payment channel still requires an on-chain transaction to open and (usually) another to close. As adoption grows, pressure on the blockchain grows with it. The need for a more scalable approach to managing channels is clear. Channel factories were supposed to meet this need, but where are they? In 2025, subnetworks are emerging that revive the impetus of channel factories with some new details that vastly increase their potential. They are natively interoperable with Lightning and achieve greater scale by allowing a group of participants to open a shared multisig UTXO and create multiple bilateral channels, which reduces the number of on-chain transactions and improves capital efficiency. Achieving greater scale by reducing complexity, Ark and Spark perform the same function as traditional channel factories with new designs and additional capabilities based on shared UTXOs.  Channel Factories 101 Channel factories have been around since the inception of Lightning. A factory is a multiparty contract where multiple users (not just two, as in a Dryja-Poon channel) cooperatively lock funds in a single multisig UTXO. They can open, close and update channels off-chain without updating the blockchain for each operation. Only when participants leave or the factory dissolves is an on-chain transaction…
Share
BitcoinEthereumNews2025/09/18 00:09
SOLANA NETWORK Withstands 6 Tbps DDoS Without Downtime

SOLANA NETWORK Withstands 6 Tbps DDoS Without Downtime

The post SOLANA NETWORK Withstands 6 Tbps DDoS Without Downtime appeared on BitcoinEthereumNews.com. In a pivotal week for crypto infrastructure, the Solana network
Share
BitcoinEthereumNews2025/12/16 20:44
Why The Green Bay Packers Must Take The Cleveland Browns Seriously — As Hard As That Might Be

Why The Green Bay Packers Must Take The Cleveland Browns Seriously — As Hard As That Might Be

The post Why The Green Bay Packers Must Take The Cleveland Browns Seriously — As Hard As That Might Be appeared on BitcoinEthereumNews.com. Jordan Love and the Green Bay Packers are off to a 2-0 start. Getty Images The Green Bay Packers are, once again, one of the NFL’s better teams. The Cleveland Browns are, once again, one of the league’s doormats. It’s why unbeaten Green Bay (2-0) is a 8-point favorite at winless Cleveland (0-2) Sunday according to betmgm.com. The money line is also Green Bay -500. Most expect this to be a Packers’ rout, and it very well could be. But Green Bay knows taking anyone in this league for granted can prove costly. “I think if you look at their roster, the paper, who they have on that team, what they can do, they got a lot of talent and things can turn around quickly for them,” Packers safety Xavier McKinney said. “We just got to kind of keep that in mind and know we not just walking into something and they just going to lay down. That’s not what they going to do.” The Browns certainly haven’t laid down on defense. Far from. Cleveland is allowing an NFL-best 191.5 yards per game. The Browns gave up 141 yards to Cincinnati in Week 1, including just seven in the second half, but still lost, 17-16. Cleveland has given up an NFL-best 45.5 rushing yards per game and just 2.1 rushing yards per attempt. “The biggest thing is our defensive line is much, much improved over last year and I think we’ve got back to our personality,” defensive coordinator Jim Schwartz said recently. “When we play our best, our D-line leads us there as our engine.” The Browns rank third in the league in passing defense, allowing just 146.0 yards per game. Cleveland has also gone 30 straight games without allowing a 300-yard passer, the longest active streak in the NFL.…
Share
BitcoinEthereumNews2025/09/18 00:41